Шаг 336 - События синхронизации (Event) в MFC

Для подробного ознакомления лучше прочитать MFC: "Шаг 332 - MFC и синхронизация", MSDN: "Шаг 83 - Что такое События (Event) синхронизации", WinAPI: "Шаг 119 - Функции CreateEvent(), SetEvent(), ResetEvent()".

В MFC для работы с Event есть соответствующий класс CEvent. Конструктор этого класса такой:

CEvent
( 
	BOOL bInitiallyOwn = FALSE,		// разрешения использовать CMultilock или CSingleLock
	BOOL bManualReset = FALSE,		// ручное или автомат
	LPCTSTR lpszName = NULL,		// имя сообщения
	LPSECURITY_ATTRIBUTES lpsaAttribute = NULL	// атрибут безопасности
);

Методы работы аналогичны функциям API:

SetEvent  
PulseEvent 
ResetEvent 

Объявить его можно и без аргументов. Вот так.

CEvent ce;

Установить в сигнальное состояние:

ce.SetEvent();

Следить за ним можно с помощью функции WaitForSingleObject():

::WaitForSingleObject(ce.m_hObject,INFINITE);

С INFINITE мы не встречались. Эта константа говорит, что не надо возвращать управление пока мы не дождемся сигнала.

Объявлен этот класс в заголовочном файле:

#include "afxmt.h"

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 6.05.2001