Qt 응용 프로그램을 작성 중이며 별도의 스레드에서 4 시간 루프가 있습니다. 그 4 시간 루프에서, 나는해야한다 :QTime 또는 QTimer가 시간 초과를 기다립니다.
- 직렬 포트로 물건을 할;
- 고정 된 시간 대기;
- 직렬 포트로 더 많은 작업을 수행하십시오.
- 임의의 시간 동안 대기하십시오.
- 500ms가 지난 경우 더 많은 작업을 수행하십시오.
- 1.로 이동하고 4 시간 동안 반복하십시오.
현재이 작업을 수행하는 방법은 매우 좋지 않으며 컴퓨터가 충돌합니다. 나는 많은 코드를 가지고 있지만 다음 발췌 문장은 기본적으로 그 문제를 보여준다. CPU가 ~ 100 %로 이동하면 결국 컴퓨터가 손상 될 수 있습니다.
void CRelayduinoUserControl::wait(int timeMS)
{
int curTime = loopTimer->elapsed();
while(loopTimer->elapsed() < curTime + timeMS);
}
필자는 프로그램을 계속 진행하기 전에 일정 시간을 기다려야합니다. 모든 타이머를 계속 유지하면서 임의의 시간 동안 기다리는 기능이 있습니까?
http://stackoverflow.com/questions/11996706/qt-c-wait-till-specific-time-to-execute-function/14144614#14144614 – formiaczek