代码之家  ›  专栏  ›  技术社区  ›  Dan H

Windows服务需要等待,线程。睡眠?

  •  6
  • Dan H  · 技术社区  · 14 年前

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

    谢谢

    3 回复  |  直到 14 年前
        1
  •  9
  •   Reed Copsey    14 年前

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

        2
  •  5
  •   Russell Steen    14 年前

    这取决于你想做什么。如果你想要一个更精确的方法 System.Threading.Timer . 关于thread.sleep的一点是,它实际上是“sleepAtleastUntil…”。处理器将忽略您的线程,直到睡眠时间过去。下次它会给你的线程优先权,在睡眠时间过去之后,它会。

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

        3
  •  4
  •   Justin Niessner    14 年前

    使用A Timer 每60秒启动一次进程,而不是强制进程睡眠。