我创建了一个 Windows 服务,它目前有三个计时器。第一个定时器每 15 秒唤醒一次,第二个定时器每分钟唤醒一次。第三个计时器每天都在醒来。
问题是这些每次都产生新线程,并且有一次线程池完全用完。是否只产生 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 的事件日志。