Оригинальный адрес: https: //blog.csdn.net/u011394598/article/details/82981399
SetEvent / ResetEvent EVENT, соответственно, эти два состояния установлены быть не сигнал сигнала.
WaitForSingleObject () ожидает , пока только возвращает заданные параметры не ОБЪЕКТ состояние сигнала становится, событие объект может быть, может быть и другими объектами ядра. Примечание: первый WaitForSingleObject параметра не должен быть пустым.
CreateEvent используется для создания или открытого или безымянный объект события с именем для других его объяснения, ваши собственные слова, вот только краткое описание двух его общего пользования!
CreateEvent определяется следующим образом :
HANDLE WINAPI CreateEvent (
_In_opt_ LPSECURITY_ATTRIBUTES lpEventAttributes, // атрибуты безопасности
_In_ BOOL bManualReset, // сбросить сигнал установки режима для автоматического восстановления состояния не-сигнала (FALSE) или вручную восстановить состояние не-сигнала (TRUE) ,
_In_ BOOL bInitialState // начальное состояние
_In_opt_ LPCTSTR lpName // имена сигналов могут быть Null
);
использование:
первый автоматический возврат в состояние не-сигнала
hEvent = CreateEvent (NULL, FALSE, TRUE, NULL); // Режим сброса автоматически восстанавливается до состояния без сигнала, а начальное состояние сигнализируется.
DWORD dReturn WaitForSingleObject = (The hEvent, время ожидания); // Конец т.е. метод вызывается после того, как , hEvent становится не состояние сигнала, необходимо вызвать SetEvent он сигнализировал состояние
hEvent будет состояние без сигнала, если вам необходимо вышеуказанную формулу и установить снова в какой - то момент до конца, вам нужно использовать следующее заявление она становится сигналом (таким образом можно только разблокировать ожидающий поток, необходимо продолжать , чтобы разблокировать, необходимо использовать следующее уравнение снова)
SetEvent (hEvent)
во втором случае , чтобы вручную восстановить состояние без сигнала
hEvent = CreateEvent (NULL, TRUE, TRUE, NULL); // ручной режим сброса восстанавливается до состояния без сигнала, а начальное состояние сигнализируется.
DWORD dReturn WaitForSingleObject = (The hEvent, время ожидания); // этот метод вызывается, то автоматически изменяется событие сигнал
hEvent автоматически станет сигналом снова, вышеприведенная формула будет выполняться непосредственно , а также путем непосредственного исполнения и прохода (есть несколько потоков , ожидающих Над), в случае необходимости hEvent установлен в состояние не-сигнала, то необходимо вручную использовать следующую инструкцию:
ResetEvent (hEvent);
Примечание: Режим выше сброса относится к возвращению к состоянию способом без сигнала, если установлен в значение TRUE, это указывает на необходимо вручную установить в отсутствии сигнала, если ЛОЖЬ, то он автоматически не становится ни один сигнал, а количество сигнала становится не сигнализировал способ запутался!