QT中,在没有事件循环的线程中,使用定时器
时间: 2023-03-01 18:38:52 浏览: 240
QT中定时器的实现代码
5星 · 资源好评率100%
在 Qt 中,没有事件循环的线程不能使用 QTimer。QTimer 是一个简单易用的计时器,其工作方式需要事件循环支持,因此只能在带有事件循环的线程(通常为主线程)中使用。
如果您需要在没有事件循环的线程中执行定期任务,可以使用 std::thread 库的 sleep_for 函数或者 boost 库的 this_thread 命名空间中的 sleep_for 函数。下面是一个使用 std::thread 的示例:
```
#include <iostream>
#include <thread>
#include <chrono>
void periodicTask()
{
while (true) {
std::cout << "Performing periodic task..." << std::endl;
std::this_thread::sleep_for(std::chrono::seconds(1));
}
}
int main()
{
std::thread t(periodicTask);
t.join();
return 0;
}
```
阅读全文