Como fazer o encadeamento dormir menos de um milissegundo no Windows

No Windows, tenho um problema que nunca encontrei no Unix. É assim que um fio dorme por menos de um milissegundo. No Unix, você normalmente tem várias opções (dormir, dormir e dormir sem dormir) para atender às suas necessidades. No Windows, no entanto, há apenasDormi com granularidade de milissegundos.

No Unix, posso usar o uso doselect chamada do sistema para criar uma suspensão de microssegundos, bastante direta:

int usleep(long usec)
{
    struct timeval tv;
    tv.tv_sec = usec/1000000L;
    tv.tv_usec = usec%1000000L;
    return select(0, 0, 0, 0, &tv);
}

Como posso obter o mesmo no Windows?

questionAnswers(18)

yourAnswerToTheQuestion