代码之家  ›  专栏  ›  技术社区  ›  Jay

Windows本机API是否支持计时器?

  •  4
  • Jay  · 技术社区  · 14 年前

    Windows本机API是否支持计时器?

    4 回复  |  直到 10 年前
        1
  •  2
  •   Peter Mortensen mkoryak    10 年前

    在POSIX计时器的上下文中,这是一个很难回答的问题。窗口API SetTimer 在依赖于线程的消息队列调度机制的GUI线程上创建一个计时器,这意味着在线程的某个地方调用GetMessage/DispatchMessage。

    如果您正在编写非GUI代码,那么必须实现消息循环是一个不自然的约束:-Windows内核使用同步对象(代替信号)作为向工作线程(即非GUI)发出事件警报的方式。 CreateWaitiableTimer

    或者,您可以创建一个工作线程—在其中实现一个计时器(GUI或内核),并在计时器发出信号时简单地调用您的(显然,它必须是线程安全的)对象。

        2
  •  10
  •   Incognito    14 年前

    是的,Win32 API中有计时器。 Timers

    特别是你需要检查

        3
  •  4
  •   JSBÕ±Õ¸Õ£Õ¹    14 年前

    确实是这样: http://windows-programming.suite101.com/article.cfm/using_the_win32_timer_api

    SetTimer 那篇文章中提到的API依赖于 WM_TIMER

        4
  •  3
  •   Alex K.    14 年前