Класс eventevent Class

Сбрасываемое вручную событие, которое явно учитывает среду выполнения с параллелизмом.A manual reset event which is explicitly aware of the Concurrency Runtime.

СинтаксисSyntax

class event;

ЧленыMembers

Открытые конструкторыPublic Constructors

nameName ОписаниеDescription
Деструктор события ~~event Destructor Уничтожает событие.Destroys an event.

Открытые методыPublic Methods

nameName ОписаниеDescription
resetreset Сбрасывает событие в несигнальное состояние.Resets the event to a non-signaled state.
setset Сигнализирует о событии.Signals the event.
ожиданияwait Ожидает сигнала события.Waits for the event to become signaled.
wait_for_multiplewait_for_multiple Ожидает получения сигнала для нескольких событий.Waits for multiple events to become signaled.

Открытые константыPublic Constants

ИмяName ОписаниеDescription
timeout_infinitetimeout_infinite Значение, указывающее, что время ожидания никогда не должно истечь.Value indicating that a wait should never time out.

КомментарииRemarks

Дополнительные сведения см. в разделе структуры данных синхронизации.For more information, see Synchronization Data Structures.

Иерархия наследованияInheritance Hierarchy

event

ТребованияRequirements

Заголовок: ConcRT. hHeader: concrt.h

Пространство имен: параллелизмNamespace: concurrency

Событие event

Конструирует новое событие.Constructs a new event.

_CRTIMP event();

КомментарииRemarks

событие ~~event

Уничтожает событие.Destroys an event.

~event();

КомментарииRemarks

Ожидается, что потоки, ожидающие события, не будут выполняться при выполнении деструктора.It is expected that there are no threads waiting on the event when the destructor runs. Разрешение уничтожения события при наличии ожидающих его результатов потоков приводит к неопределенному поведению.Allowing the event to destruct with threads still waiting on it results in undefined behavior.

перезапускreset

Сбрасывает событие в несигнальное состояние.Resets the event to a non-signaled state.

void reset();

параметрset

Сигнализирует о событии.Signals the event.

void set();

КомментарииRemarks

Подача сигнала о событии может привести к тому, что произвольное число контекстов будет ожидать, когда событие станет готово к запуску.Signaling the event can cause an arbitrary number of contexts waiting on the event to become runnable.

timeout_infinitetimeout_infinite

Значение, указывающее, что время ожидания никогда не должно истечь.Value indicating that a wait should never time out.

static const unsigned int timeout_infinite = COOPERATIVE_TIMEOUT_INFINITE;

ожиданияwait

Ожидает сигнала события.Waits for the event to become signaled.

size_t wait(unsigned int _Timeout = COOPERATIVE_TIMEOUT_INFINITE);

ПараметрыParameters

_Timeout_Timeout
Указывает число миллисекунд до истечения времени ожидания. Значение COOPERATIVE_TIMEOUT_INFINITE указывает на отсутствие времени ожидания.Indicates the number of milliseconds before the wait times out. The value COOPERATIVE_TIMEOUT_INFINITE signifies that there is no timeout.

Возвращаемое значениеReturn Value

Если ожидание было удовлетворено, 0 возвращается значение; в противном случае — значение, COOPERATIVE_WAIT_TIMEOUT указывающее, что время ожидания истекло без оповещения о событии.If the wait was satisfied, the value 0 is returned; otherwise, the value COOPERATIVE_WAIT_TIMEOUT to indicate that the wait timed out without the event becoming signaled.

Важно!

В приложении универсальная платформа Windows (UWP) не вызывайте wait поток ASTA, так как этот вызов может блокировать текущий поток и может привести к тому, что приложение перестанет отвечать на запросы.In a Universal Windows Platform (UWP) app, do not call wait on the ASTA thread because this call can block the current thread and can cause the app to become unresponsive.

wait_for_multiplewait_for_multiple

Ожидает получения сигнала для нескольких событий.Waits for multiple events to become signaled.

static size_t __cdecl wait_for_multiple(
    _In_reads_(count) event** _PPEvents,
    size_t count,
    bool _FWaitAll,
    unsigned int _Timeout = COOPERATIVE_TIMEOUT_INFINITE);

ПараметрыParameters

_PPEvents_PPEvents
Массив событий для ожидания.An array of events to wait on. Число событий в массиве указывается count параметром.The number of events within the array is indicated by the count parameter.

countcount
Число событий в массиве, переданном в _PPEvents параметре.The count of events within the array supplied in the _PPEvents parameter.

_FWaitAll_FWaitAll
Если задано значение true , параметр указывает, что все события в массиве, передаваемые в _PPEvents параметре, должны быть сигнальными для удовлетворения ожидания.If set to the value true, the parameter specifies that all events within the array supplied in the _PPEvents parameter must become signaled in order to satisfy the wait. Если задано значение false , оно указывает, что любое событие в массиве, передаваемое _PPEvents параметром, будет соответствовать ожиданиям.If set to the value false, it specifies that any event within the array supplied in the _PPEvents parameter becoming signaled will satisfy the wait.

_Timeout_Timeout
Указывает число миллисекунд до истечения времени ожидания. Значение COOPERATIVE_TIMEOUT_INFINITE указывает на отсутствие времени ожидания.Indicates the number of milliseconds before the wait times out. The value COOPERATIVE_TIMEOUT_INFINITE signifies that there is no timeout.

Возвращаемое значениеReturn Value

Если ожидание было удовлетворено, индекс в массиве, указанный в _PPEvents параметре, который удовлетворяет условию ожидания; в противном случае — значение, COOPERATIVE_WAIT_TIMEOUT указывающее, что время ожидания истекло без соблюдения условия.If the wait was satisfied, the index within the array supplied in the _PPEvents parameter which satisfied the wait condition; otherwise, the value COOPERATIVE_WAIT_TIMEOUT to indicate that the wait timed out without the condition being satisfied.

КомментарииRemarks

Если параметру _FWaitAll присвоено значение, true указывающее, что все события должны быть сигнальными для удовлетворения ожидания, индекс, возвращаемый функцией, не несет никакого специального значения, Кроме того факта, что он не является значением COOPERATIVE_WAIT_TIMEOUT .If the parameter _FWaitAll is set to the value true to indicate that all events must become signaled to satisfy the wait, the index returned by the function carries no special significance other than the fact that it is not the value COOPERATIVE_WAIT_TIMEOUT.

Важно!

В приложении универсальная платформа Windows (UWP) не вызывайте wait_for_multiple поток ASTA, так как этот вызов может блокировать текущий поток и может привести к тому, что приложение перестанет отвечать на запросы.In a Universal Windows Platform (UWP) app, do not call wait_for_multiple on the ASTA thread because this call can block the current thread and can cause the app to become unresponsive.

См. также разделSee also

Пространство имен Concurrencyconcurrency Namespace