我有一个c#windows服务需要每60秒执行一次数据库查询(或者在配置文件中设置任何间隔)。我在while循环中使用Thread.sleep(60)来完成此任务。有更好的方法吗?
由于
答案 0 :(得分:9)
您可以使用System.Threading.Timer每60秒运行一次代码,而不是在睡眠线程中运行代码。
答案 1 :(得分:5)
这取决于你想做什么。如果您想要(更多)精确方法,您可能需要使用System.Threading.Timer。关于thread.sleep的一件事是它真的是“sleepatleastuntil ...”。处理器将忽略您的线程,直到睡眠时间结束。下一次它会给你的线程优先级,在睡眠时间结束后,它会。
这通常非常接近所需的间隔,但可能更长。除非你真的打算屈服,否则不要屈服。
答案 2 :(得分:4)
使用Timer每60秒触发一次进程,而不是强制进程进入休眠状态。