2017-07-11 10 views
0

一度、私は、一度、Thread.IsBackground = true(バックグラウンドスレッド)のようなものを使用したことを経験しましたが、コントローラのメソッド方法。コードスニペットは以下になります。ウェブベースのシステムのバックグラウンドスレッドのライフサイクル

Thread th = new Thread(()=>Thread.Sleep(10000); Log.Write……); 
th.IsBackGround = true; 
th.Start(); 

実際には、そんなに時間がかかることはありません、コントローラのメソッドの要求(それはちょうどEXPERIMENTです!)。コントローラの特定のメソッドを要求したとき。私は何も記録されていない!

私は、スレッドのライフサイクルが単純な要求の場合と同じくらい長いため、これを知っています。しかし、もし私がタスクのようなものを使いたいのであれば(スレッドプールの場合はThread.IsBackround = trueに依存していることは分かっています。


可能でしょうか?

1) "Thread"インスタンスを中止する例外が発生した場合、 "Thread"を直接使用してGCによってリサイクルされるようにするにはどうすればいいですか?

2)ネット4.0で "タスク"を使用するには、 "TaskOptions"をLongWorkingに設定します(これはGCによってリサイクルされ、重労働になるでしょうか?)。

3)Webベースのアプリケーションで要求が出たときにGCによってリサイクルされ、大量の作業を実行できるスレッドに関する他のアイデアはありますか?

答えて

関連する問題