c ++ - sleep kommando i gevind applikation

Indlæg af Hanne Mølgaard Plasc

Problem



Kommandoen Sleep (ms) i Windows forårsager tråde at frigive deres timeslices. Er der en tilsvarende Sleep (ms) kommando, der stopper tråden, men frigiver ikke tidsløbet?

Bedste reference


Du vil ikke have din tråd til at sove (aka suspender), du vil stoppe det. Gør det med en simpel loop:


#include <time.h>

void stall(unsigned ms){
    clock\_t goal = clock()+ms;
    while(goal>clock());
}
// or maybe higher resolution with some performance profiling functions...

Andre referencer 1


Mærkelig.


En måde at gøre er at få din tråd til at udføre en løkke til slutningen af ​​den periode, der er nødvendig.


En bedre løsning kan være at give trådhåndtering enheden høj prioritet. Men alligevel er Windows ikke særlig velegnet til real-time systemer ...