tyomitch » 21.09.2004 (Вт) 21:10
У Аппельмана про это очень хорошо написано.
Event - это глобальный объект, который бывает в двух состояниях: "установленном" и "снятом".
Его прелесть в том, что все нити, даже выполняющиейся одновременно на разных процессорах, гарантированно видят его в одинаковом состоянии.
WaitForMultipleObjects (применительно к эвентам) ждёт, пока один из них (либо все) не будет установлен.
Гарантируется, что "пульс" эвента "разморозит" ровно одну ждущую нить, а не все.
В свою очередь, установка и затем сброс эвента разморозят все ждущие нити.