2011-01-13 4 views
3

asp.netアプリケーションに通常のスレッドを作成します。スレッドが完了したら、どうすればいいですか?それを残す(スレッドプールに戻る)、または中断する。スレッドが完了したらどうすればよいですか?それを放置するか、中止するか?

Thread thread = new Thread(new ThreadStart(work)); 
+2

このようにスレッドを作成すると、スレッドプールは使用されません。 – Ani

+0

だから私はそれらのコンテキストを終了しておく場合、このスレッドで何が起こる? – Xaqron

+0

Aniが上記のコードを指摘しても、スレッドプールスレッドは得られません。 BackgroudWorker、または.NET 4の場合はTaskクラスを見てください。 –

答えて

3

お待ちください。無意味な例外を作成する意味はありません。

1

C#で

[STAThread] 
    public static void Main(string[] args) 
    { 
     foreach(var fileNamePath in DirectoryFiles) 
     { 
     ThreadPool.QueueUserWorkItem(ThreadPoolCallback, fileNamePath); 
     } 
    } 

    public void ThreadPoolCallback(object threadContext) 
    { 
     //do something 
    } 

をスレッドプールを使用して.NETでのThreadPoolは、他のすべてを処理します。

2

IDisposableインターフェイスが存在することを想起してください。具体的には、一部の共有リソースを解放する必要があるシナリオではです。 (もちろん、同様に他の文脈で適用されている;それはそれは元々のために意図された状況である)

は今(管理ThreadクラスIDisposableを実装していないとお察しのことを考えますGCによって正常に処理されている特定のクリーンアップを必要としないことを確認してください。

関連する問題