Поделиться через


Класс 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, так как этот вызов может блокировать текущий поток и может привести к тому, что приложение не отвечает.

См. также

Пространство имен concurrency