Разница между функциями WaitForSingleObject и Sleep заключается в их назначении:
- WaitForSingleObject приостанавливает выполнение потока до тех пор, пока не произойдёт одно из двух событий: истечёт таймаут ожидания или ожидаемый объект перейдёт в сигнальное состояние. 2 Например, с её помощью можно ожидать завершения работы объекта «процесс» или «поток». 25
- Sleep приостанавливает работу потока на заданное число миллисекунд. 2 Если в качестве аргумента указать 0 миллисекунд, то поток откажется от своего кванта процессорного времени, однако тут же появится в списке потоков, готовых к выполнению. 2
Таким образом, WaitForSingleObject используется для ожидания конкретного события, а Sleep — для ожидания в течение определённого времени. 1