現在 3 つのタイマーを持つ Windows サービスを作成しました。最初のタイマーは 15 秒ごとに起動し、2 番目のタイマーは 1 分ごとに起動します。3番目のタイマーは毎日起きています。
問題は、これらが毎回新しいスレッドを生成し、一度スレッドプールが完全に使い果たされることです.3つのスレッドを生成するだけで、それ以上新しいスレッドを生成しないことはありますか.
私のコードは次のようになります。
protected Onstart()
{
var timer1 = new TImer();
timer.Elapsed += Event1;
timer1.interval = 60000;
timer1.start();
var timer2 = new TImer();
timer2.Elapsed += Event2;
timer2.interval = 60000;
timer2.start();
}
private Event1(object,elapsedeventargs)
{
var workerthread1 = **new thread**(workerthreadfunc1)
workerthread1.start();
}
private Event2(object,elapsedeventargs)
{
var workerthread2 = **new thread**(workerthreadfunc2)
workerthread2.start();
}
ご覧のとおり、ある時点でスレッドプール内のすべてのスレッドを使い果たし、Windows サービスを突然停止する新しいスレッドを作成しています。現在、イベント ID 5000 の evet ログを停止してログしています。