我正在运行 Windows 服务并使用循环和 Thread.Sleep 来重复任务,使用计时器方法会更好吗?
如果是的话,代码示例会很棒
我目前正在使用此代码来重复
int curMinute;
int lastMinute = DateTime.Now.AddMinutes(-1).Minute;
while (condition)
{
curMinute = DateTime.Now.Minute;
if (lastMinute < curMinute) {
// do your once-per-minute code here
lastMinute = curMinute;
}
Thread.Sleep(50000); // sleeps for 50 seconds
if (error condition that would break you out of this) {
break; // leaves looping structure
}
}
在我看来,计时器是一个更好的主意。这样,如果您的服务被要求停止,它可以非常快速地响应,而不会再次调用计时器滴答处理程序...如果您正在睡觉,服务管理器将不得不等待 50 秒或终止您的服务线程,这两者都不是很好。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)