Что для системы делать проще: WaitForSingleObject или Sleep? я всегда думал что намного проще ей обрабатывать Sleep, Sleep это просто перевести поток в состояние ожидания на заданное время. WaitForSingleObject это надо сначала проверить существует ли хендл, есть ли доступ к искомому объекту по этому хендлу, проверить состояние объекта и только потом перевести в состояние ожидания.
Sleep если и проще, то несущественно. С этим даже заморачиваться не стоит, имхо. К тому же Sleep не является альтернативой WaitForSingleObject.
Где-то я видел код в котором была функция ожидания типа Sleep_ с примерно таким содержанием Код (Text): void Sleep_(dword delaytime) { h = createevent(.......); waitforsinglepbject(h, delaytime); closehandle(h); } и после этого задумался о смысле жизни....
кстати, такой метод пропагандировал Флёнов в книге "Delphi глазами хакера". Я читал эту книгу когда был ещё не очень сильно шарил в системном программировании, но уже тогда очень удивился этому