a função do sono em c no windows. Faz uma função com melhor exist precisão?
Pergunta
Eu queria saber se alguém sabia de uma função melhor sono que poderia ser usado em janelas em C, com excepção Sleep (), que leva uma entrada milissegundo e só garante que a entrada é a quantidade mínima de tempo decorrido. Estou passando em 1 milissegundo, mas realmente ficando um atraso 15-16 milissegundo. Existe alguma maneira para definir com precisão um tempo de sono específico?
Solução
Não, não realmente. Quando você informe o seu programa para o sono, você está dando-se o processador e deixar o sistema operacional decidir o que fazer a seguir. Uma vez que o sistema operacional está no controle, ele decide quando dar o seu programa de outra fatia de tempo de processamento. É por isso que você pode especificar um mínimo, mas não há nenhuma garantia de que o sistema operacional irá voltar para o seu processo a qualquer momento particular.
Outras dicas
Sleep só garante que seu processo não será executado para , pelo menos n milissegundos, não que ele vai dormir exatamente n milissegundos. Talvez você queira configurar um temporizador? Ou espera ocupada (ou seja poll QueryPerformanceCounter em um loop).
Eu tento evitar essa abordagem (ocupado espera) a menos que você tem que, porém, você está queimando ciclos e você está parando o CPU de ser colocado em velocidades de clock mais baixos (ou seja, queima a vida da bateria)
Não, não é uma função do sono melhor no Windows, porque milissegundos é o nível de granularidade disponível. Se você quiser dormir por menos tempo que você precisa para implementar um bloqueio de rotação das sortes.