команда сна в поточном приложении - PullRequest
1 голос
/ 16 апреля 2011

Команда Sleep (ms) в Windows заставляет потоки освобождать свои временные интервалы. Существует ли эквивалентная команда Sleep (ms), которая останавливает поток, но не освобождает временной интервал?

Ответы [ 2 ]

4 голосов
/ 16 апреля 2011

Вы не хотите, чтобы ваш поток спал (он же приостановлен), вы хотите остановить его. Сделайте это с помощью простого цикла:

#include <time.h>

void stall(unsigned ms){
    clock_t goal = clock()+ms;
    while(goal>clock());
}
// or maybe higher resolution with some performance profiling functions...
1 голос
/ 16 апреля 2011

Странно.

Один из способов сделать это - заставить ваш поток выполнить цикл до конца необходимого периода.

Лучшим решением может быть предоставление потока, обрабатывающего устройство, высокому приоритету. Но в любом случае Windows не очень подходит для систем реального времени ...

...