请给出一个C++定时器实现
时间: 2024-04-11 11:33:44 浏览: 242
以下是一个简单的C++定时器实现示例,使用`std::thread`和`std::chrono`库:
```cpp
#include <iostream>
#include <thread>
#include <chrono>
void timerCallback()
{
std::cout << "定时器触发!" << std::endl;
}
void startTimer(int duration)
{
std::this_thread::sleep_for(std::chrono::seconds(duration));
timerCallback();
}
int main()
{
int duration = 5; // 设置定时器触发时间为5秒
std::thread timerThread(startTimer, duration); // 创建定时器线程
// 主线程继续执行其他任务
std::cout << "主线程继续执行..." << std::endl;
timerThread.join(); // 等待定时器线程结束
return 0;
}
```
在上面的示例中,`startTimer`函数通过`std::this_thread::sleep_for`函数暂停指定的时间(以秒为单位),然后调用`timerCallback`函数来触发定时器事件。在`main`函数中,我们创建了一个定时器线程并指定了触发时间为5秒。主线程可以继续执行其他任务,而定时器线程在指定的时间后触发回调函数。
请注意,这只是一个简单的定时器实现示例,适用于单线程环境。在实际的应用中,可能需要考虑更复杂的场景,例如在多线程环境下同时管理多个定时器。
阅读全文