【问题标题】:Timers in WindowsWindows 中的计时器
【发布时间】:2012-12-27 06:34:13
【问题描述】:

我正在使用 SetTimer API 体验a problem

出于好奇,我在 Delphi 中还有哪些其他选择?

【问题讨论】:

  • codeproject.com/Articles/1236/Timers-Tutorial#QueueTimers 都在这里描述。我对使用多媒体计时器有点犹豫,但它们在 Windows 8 下仍然表现良好。无论哪种方式,队列计时器或多媒体计时器都会提供更好的结果。
  • 请将此作为答案发布:)
  • 你可以看看TJvThreadTimer。一个高分辨率计时器,它在内部线程上运行,而不是依赖于 windows api。可以在没有 Windows 句柄的情况下使用。
  • 还有等待定时器

标签: windows delphi timer


【解决方案1】:

codeproject.com/Articles/1236/Timers-Tutorial#QueueTimers 都在这里描述。我有点犹豫是否要使用多媒体计时器,但它们在 Windows 8 下仍然表现良好。无论哪种方式,队列计时器或多媒体计时器都会提供更好的结果。

【讨论】:

    【解决方案2】:

    当你需要按照一定的时间做工作时,你也应该问你是否需要在线程中做工作。处理定时器事件和卸载工作从主线程到单独的线程之间有很大的区别,无论是在如何设置和如何执行(考虑到越来越多的硬件具有多核心处理器)。

    做到这一点的最基本方法是从 TThread 继承,但这并不是那么简单。 (参见“新建项目”对话框中的“线程”,或the documentation)还有许多threading platforms for Delphi

    【讨论】:

      【解决方案3】:

      我写了queue timer wrapper as a Delphi component 该项目已停止,但您可以使用TksTimer 代码或安装ksTools 包。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-03-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多