【发布时间】:2012-04-01 04:17:15
【问题描述】:
我正在编写一个 Qt 应用程序,我有一个四小时的循环(在一个单独的线程中)。在这四个小时的循环中,我必须:
- 用串口做事;
- 等待一段固定的时间;
- 用串口做更多的事情;
- 等待任意时间。
- 当 500 毫秒过去时,做更多的事情;
- 转到 1. 并重复四个小时。
目前,我这样做的方法非常糟糕,并且导致一些计算机崩溃。我有一大堆代码,但下面的sn-p基本上说明了问题。 CPU 达到 ~100%,最终可能导致计算机崩溃。
void CRelayduinoUserControl::wait(int timeMS)
{
int curTime = loopTimer->elapsed();
while(loopTimer->elapsed() < curTime + timeMS);
}
我需要等待一段特定的时间才能继续执行该程序。是否有一些函数会在保持所有计时器运行的同时等待任意时间段?
【问题讨论】: