Oldair,
kkkkk...gostei do masoquista foi bem exótico isso, de latencia em conheço um pouco e sei que atrasos de 10ms ou menor ja fazem um terrorismo grande num sistema, por isso amigo que eu uso Threads com base de tempo real no meu programa, sinceramente eu uso dois Threads em "prioridade maxima" ou seja: quase toda força do sistema é dedicada ao programa evitando justamente problemas com latências, se elas acontecem é num espaço de tempo desconhecido pelas linhas do proprio programa, uma traição ao código numa linguagem mais rude....
Agora eu fiquei curioso onde acontece essas interrupções de SO? em que momento isso acontece..quando executo meu programa?
Conselho..., não confie cegamente nas Threads que o Windows disponibiliza.
Já fiz programas multiprocessos e multithreads (são duas coisas diferentes) em VMS, LINUX e SUN-OS, verdadeiros S.O. multitarefa e multiusuário. Não sou profundo conhecedor do Windows, mas sei que na família Windows, excetuando o Windows NT, que era cópia do VMS, geralmente não são verdadeiramente multitarefa. O VMS era um S.O. famoso da finada DEC (Digital Equipment Corporation), ou "Digital" para os íntimos.
Um pouco de história: A DEC era concorrente da IBM em sistemas de processamento científico e de universidades. Os equipamentos da DEC e o VMS junto com os UNIX, foram um dos fundamentos no desenvolvimento da Rede Ethernet e da Internet....
A contrução de threads existe em qualquer S.O. decente. Threads são pequenos processos que o sistema operacional permite criar dentro do contexto do seu programa, simulando um sistema multitarefas.
Desse modo, em determinados momentos (deveria ser periodicamente, com desvio de microsegundos ou menos em sistemas de tempo real), o Windows passa o controle da CPU para uma das Threads, permitindo que a mesma seja executada. Como o Windows não é um sistema de tempo real, a temporização de execução dessas threads não é determinística, ou seja, as threads não são executadas dentro de um escalonamento de tempo previsível. Altamente desejável em sistemas de controle, acionamentos de máquinas, motores, etc...
Além disso, o fato de voce poder ajustar uma "prioridade" de uma Thread não é a solução definitiva, pois lembre-se que o Windows ainda está no (des)controle de tudo, conforme critérios obscuros e ocultos à maioria dos "mortais". A prioridade permite ao Windows decidir quando houverem duas ou mais Threads na fila para serem executadas, ou que receberem uma interrupção (teclado, mouse, porta serial, disco, rede...), qual será executada primeiro, segundo, terceiro,.... Mas perceba, que só isso não garante a periodicidade de tempo invariável na execução. Seria necessário um escalonador de tempo real, um sistema reentrante para tratamento de interrupções com baixa latência, ...... Coisas que, até onde eu sei, o Windows não possui...