Windows服务需要等待,Thread.Sleep?

时间:2010-04-06 20:25:37

标签: c# .net windows service

我有一个c#windows服务需要每60秒执行一次数据库查询(或者在配置文件中设置任何间隔)。我在while循环中使用Thread.sleep(60)来完成此任务。有更好的方法吗?

由于

3 个答案:

答案 0 :(得分:9)

您可以使用System.Threading.Timer每60秒运行一次代码,而不是在睡眠线程中运行代码。

答案 1 :(得分:5)

这取决于你想做什么。如果您想要(更多)精确方法,您可能需要使用System.Threading.Timer。关于thread.sleep的一件事是它真的是“sleepatleastuntil ...”。处理器将忽略您的线程,直到睡眠时间结束。下一次它会给你的线程优先级,在睡眠时间结束后,它会。

这通常非常接近所需的间隔,但可能更长。除非你真的打算屈服,否则不要屈服。

答案 2 :(得分:4)

使用Timer每60秒触发一次进程,而不是强制进程进入休眠状态。