私は、.Net 4.0 C#Windowsサービスを使用して、連続して実行されるいくつかのスレッドを生成します。各スレッドは、タイマーに基づいて異なる間隔で実行されます。Windowsサービスでタイマーを待っているスレッドをシャットダウンします。
サービスがシャットダウンされたときに、これらのスレッドを正常にシャットダウンする必要があります。
これらのスレッドの中には処理に何時間も待っている可能性があるため、それらをスリープ解除して終了するように指示する必要があります。
これらのスレッドでループを作成して、グローバル変数を定期的にチェックすることができますが、処理間隔よりも少し時間がかかりますが、タイマーが早すぎてポップするようなシグナルメカニズムが好まれます。
Thread.AbortまたはThread.Interruptを使用せずに、これらのスレッドをタイマーで待機させるにはどうすればよいですか?
ワーキングスレッドをラッチするためにタイマーを使用するのではなく、作業を行うために 'Timer'を使用するだけの特別な理由は何ですか? –
スレッドはあまりにも高価すぎるシステムオブジェクトは何も役に立たずに何時間も待っています。 Timerクラスからスレッドを無料で入手できます。 –
これは現在、さまざまな種類の処理用にスレッドを持っている既存のサービスです。現在はThread.Abort()とSleepを使用しています。 Timerとそれが代わりに生成するスレッドを使用して調べます。 – codezoo