c++ - 有没有办法用本机 C++ 代码替换 Windows API Timer (SetTimer)?
问题描述
我只知道boost中有一个deadline_timer。如果没有更原生的 C++ 代码,我将不得不使用 boost 代码。
// Construct a timer without setting an expiry time.
boost::asio::deadline_timer timer(io_context);
// Set an expiry time relative to now.
timer.expires_from_now(boost::posix_time::seconds(5));
// Wait for the timer to expire.
timer.wait()
解决方案
不是 C++ 解决方案,但您展示的逻辑类型可以在 Win32 中使用waitable timer来完成。使用 创建一个计时器对象CreateWaitableTimer()
,使用 使其成为一次性手动重置计时器SetWaitableTimer()
,然后使用 等待它WaitForSingleObject()
。您可以轻松编写一个 C++ 类来包装这些操作。
推荐阅读
- tensorflow - Keras 在 CondInst 中使用 tensorflow 实现动态过滤器结构
- c# - 航点超出范围错误如何解决?
- javascript - 如何在 React Native 中调用子组件函数?
- swift - 如何使用 FSCalendar 在有事件的圆圈中显示日期?
- bash - 错误 R14(超出内存配额)和错误 R10(启动超时)-> Web 进程未能在启动后 60 秒内绑定到 $PORT
- javascript - 添加新元素时添加功能按钮
- java - 当 JOIN FETCH 与主 ID 以外的参考列一起使用时,休眠执行多个查询
- reactjs - reactjs 和 d3v4 npm install 无法识别常用功能?
- javascript - Discord.js我如何检查所有公会成员的ID?
- javascript - Django Fullcalendar 不渲染