首页 > 解决方案 > 有没有办法用本机 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++c++11timer

解决方案


不是 C++ 解决方案,但您展示的逻辑类型可以在 Win32 中使用waitable timer来完成。使用 创建一个计时器对象CreateWaitableTimer(),使用 使其成为一次性手动重置计时器SetWaitableTimer(),然后使用 等待它WaitForSingleObject()。您可以轻松编写一个 C++ 类来包装这些操作。


推荐阅读