Класс event
Сбрасываемое вручную событие, которое явно учитывает среду выполнения с параллелизмом.
Синтаксис
class event;
Участники
Открытые конструкторы
Имя | Описание |
---|---|
Деструктор ~event | Уничтожает событие. |
Открытые методы
Имя | Описание |
---|---|
reset; | Сбрасывает событие в состояние без сигнала. |
set | Сигнализирует о событии. |
ждать | Ожидает, пока событие станет сигналом. |
wait_for_multiple | Ожидает передачи сигнала о нескольких событиях. |
Открытые константы
Имя | Описание |
---|---|
timeout_infinite | Значение, указывающее, что время ожидания никогда не должно истечь. |
Замечания
Дополнительные сведения см. в разделе "Структуры данных синхронизации".
Иерархия наследования
event
Требования
Заголовок: concrt.h
Пространство имен: concurrency
события
Создает новое событие.
_CRTIMP event();
Замечания
~событие
Уничтожает событие.
~event();
Замечания
Ожидается, что потоки, ожидающие события при запуске деструктора, отсутствуют. Разрешение уничтожения события при наличии ожидающих его результатов потоков приводит к неопределенному поведению.
reset
Сбрасывает событие в состояние без сигнала.
void reset();
set
Сигнализирует о событии.
void set();
Замечания
Подача сигнала о событии может привести к тому, что произвольное число контекстов будет ожидать, когда событие станет готово к запуску.
timeout_infinite
Значение, указывающее, что время ожидания никогда не должно истечь.
static const unsigned int timeout_infinite = COOPERATIVE_TIMEOUT_INFINITE;
wait
Ожидает, пока событие станет сигналом.
size_t wait(unsigned int _Timeout = COOPERATIVE_TIMEOUT_INFINITE);
Параметры
_Времени ожидания
Указывает количество миллисекунда перед временем ожидания. Значение COOPERATIVE_TIMEOUT_INFINITE
означает, что время ожидания отсутствует.
Возвращаемое значение
Если ожидание было удовлетворено, возвращается значение 0
; в противном случае значение COOPERATIVE_WAIT_TIMEOUT
, указывающее, что время ожидания истекло без сигнала события.
Внимание
В приложении универсальная платформа Windows (UWP) не вызывайте wait
поток ASTA, так как этот вызов может блокировать текущий поток и может привести к тому, что приложение не отвечает.
wait_for_multiple
Ожидает передачи сигнала о нескольких событиях.
static size_t __cdecl wait_for_multiple(
_In_reads_(count) event** _PPEvents,
size_t count,
bool _FWaitAll,
unsigned int _Timeout = COOPERATIVE_TIMEOUT_INFINITE);
Параметры
_PPEvents
Массив событий для ожидания. Число событий в массиве указывается параметром count
.
count
Количество событий в массиве, указанного в параметре _PPEvents
.
_FWaitAll
Если задано значение true
, параметр указывает, что все события в массиве, предоставленном в параметре _PPEvents
, должны быть сигнализировать, чтобы удовлетворить ожидание. Если задано значение false
, оно указывает, что любое событие в массиве, предоставленном в параметре _PPEvents
, которое сигнализирует, будет соответствовать ожиданию.
_Времени ожидания
Указывает количество миллисекунда перед временем ожидания. Значение COOPERATIVE_TIMEOUT_INFINITE
означает, что время ожидания отсутствует.
Возвращаемое значение
Если ожидание выполнено, индекс в массиве, предоставленный в _PPEvents
параметре, который удовлетворяет условию ожидания; в противном случае значение COOPERATIVE_WAIT_TIMEOUT
, указывающее, что время ожидания истекло без выполнения условия.
Замечания
Если для параметра _FWaitAll
задано значение true
, указывающее, что все события должны быть сигнализованы для удовлетворения ожидания, индекс, возвращаемый функцией, не имеет особого значения, кроме того, что оно не является значением COOPERATIVE_WAIT_TIMEOUT
.
Внимание
В приложении универсальная платформа Windows (UWP) не вызывайте wait_for_multiple
поток ASTA, так как этот вызов может блокировать текущий поток и может привести к тому, что приложение не отвечает.