我有一个用C#/。net 4.0编写的Windows服务来处理我的计时器中实现的一些冗长的工作。我想优雅地关闭它(等待所有当前的工作完成首先)。所以我在OnStop
函数
protected override void OnStop()
{
this.jobTimer.Enabled = false;
while (TotalRunningJobs > 0)
{
this.RequestAdditionalTime(4000);
t.Thread.Sleep(4000);
}
}
TotalRunningJobs
变量用于捕获计时器内发生的事情。使用上面的代码,如果作业无法及时完成,即使我已经使用Error 1053: The service did not respond to the start or control request in a timely fashion.
,也会收到错误消息RequestAdditionalTime
。
知道为什么会这样吗?