Timer 定时器

本文介绍了Windows上两种原生定时器:SetTimer和SetWaitableTimer,分析了它们的使用场景和精度差异,并讨论了通过超时机制自定义定时器的方法,包括使用Sleep/WaitForSingleObject以及跨平台方案如boost::asio和C++标准库中的工具。
摘要由CSDN通过智能技术生成

Windows 上原生Timer常用的有下面两个:

1. SetTimer windows上最简单方便的定时器,不足之处是要依赖消息循环,不能在工作线程使用。时钟到了会将WM_TIMER放入消息队列,也会收到消息队列中消息数量和消息处理过程影响

2. SetWaitableTimer 内核定时器,可以在任何线程使用。精度也较SetTimer高,不过对不同系统这个默认精度不同,可以通过timeBeginPeriod设置,这个在msdn SetWaitableTimer 的介绍中也有提到:SetWaitableTimer function (synchapi.h) - Win32 apps | Microsoft DocsActivates the specified waitable timer. When the due time arrives, the timer is signaled and the thread that set the timer calls the optional completion routine.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值