Функция WaitForSingleObject останавливает выполнения программы до тех пор пока объект , идентификатор которого передан в функцию ,не окажется в "сигнальном" состоянии (в частности если передать сюда Handle - "держатель" потока (нити) ,то функция остановит выполнения того потока, в рамках которого она запущена ,до завершения работы того потока, Handle которого ей передали ) - но не дольше указанного временного интервала.
параметры =