计时器实现超时功能

香椿

我正在用C编写Windows(Win32)程序,该程序具有一个工作线程来处理USB硬件设备中的数据。线程处理所有工作正常,但是我现在需要添加一个计时器来处理超时功能。我不需要回调函数,仅需要启动单发计时器并能够测试天气就可以了,而无需睡觉,如下所示:

start_timout(1000);   // 1 second

while (timer_is_running())
{
  doing stuff while waiting...
  .
  .
  .
}

do stuff after timer is finished...
.
.
.

这将在工作线程内运行。

我看过SetTimer(),并尝试创建一个回调函数,该函数仅设置一个全局标志,然后测试该标志,但始终未设置。我不确定这是否是因为我的线程中没有消息处理程序。

任何建议欢迎..干杯!

伦丁

SetTimer要求您在窗口中捕获WM_TIMER事件,最重要的是,它不是很准确。我不建议使用它。

相反,您可以简单地创建另一个线程,让它在指定的时间段内除了Sleep()之外什么也不做(您可以在创建线程时将时间作为参数传递)。然后WaitForSingleObject(sleeper_thread, 0)您可以检查是否超时。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

计时器实现超时功能

来自分类Dev

设置功能的计时器

来自分类Dev

任意功能的计时器

来自分类Dev

Javascript计时器功能

来自分类Dev

任意功能的计时器

来自分类Dev

Android的倒数计时器取消与超时

来自分类Dev

创建会话超时功能,可以显示计时器并在角度超时时重定向到上一页

来自分类Dev

在C ++中实现计时器

来自分类Dev

在Java中实现计时器

来自分类Dev

如何实现SpriteKit计时器?

来自分类Dev

计时器-DoEvents的替代实现

来自分类Dev

在C ++中实现计时器

来自分类Dev

当计时器运行的功能下降时?

来自分类Dev

如何创建计时器功能?

来自分类Dev

计时器功能的错误处理

来自分类Dev

javascript setTimeout计时器步进功能

来自分类Dev

UWP 中相机功能的计时器

来自分类Dev

如何为CSS动画计时功能设置计时器?

来自分类Dev

使用EJB计时器的WebSphere中的Bean事务超时

来自分类Dev

动态更改计时器中的超时间隔

来自分类Dev

动态更改计时器中的超时间隔

来自分类Dev

具有多个超时的Java计时器

来自分类Dev

批次:Taskkill超时,无需等待计时器

来自分类Dev

Azure功能计时器触发器

来自分类Dev

在C ++ 11中实现看门狗计时器

来自分类Dev

在C#中使用计时器实现循环

来自分类Dev

淘汰赛js如何实现倒数计时器

来自分类Dev

相机应用计时器实现问题

来自分类Dev

如何在Xamarin.forms中实现计时器