Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Событие с ручным сбросом, которое явно учитывает Параллельную среду выполнения.
Синтаксис
class event;
Участники
Открытые конструкторы
| Имя | Описание |
|---|---|
| ~event Деструктор | Уничтожает событие. |
Открытые методы
| Имя | Описание |
|---|---|
| reset; | Сбрасывает событие в состояние без сигнала. |
| установить | Сигнализирует о событии. |
| ждать | Ожидает, пока событие станет сигналом. |
| wait_for_multiple | Ожидает передачи сигнала о нескольких событиях. |
Открытые константы
| Имя | Описание |
|---|---|
| timeout_infinite | Значение, указывающее, что время ожидания никогда не должно истечь. |
Замечания
Дополнительные сведения см. в разделе "Структуры данных синхронизации".
Иерархия наследования
event
Требования
Заголовок: concrt.h
Пространство имен: конкурентность
событие
Создает новое событие.
_CRTIMP event();
~событие
Уничтожает событие.
~event();
Замечания
Ожидается, что потоки, ожидающие события при запуске деструктора, отсутствуют. Позволить событию уничтожиться, когда потоки всё ещё ждут его, ведет к неопределенному поведению.
reset
Сбрасывает событие в состояние без сигнала.
void reset();
набор
Сигнализирует о событии.
void set();
Замечания
Подача сигнала о событии может привести к тому, что произвольное число контекстов будет ожидать, когда событие станет готово к запуску.
таймаут_бесконечный
Значение, указывающее, что время ожидания никогда не должно истечь.
static const unsigned int timeout_infinite = COOPERATIVE_TIMEOUT_INFINITE;
подождите
Ожидает, пока событие станет сигналом.
size_t wait(unsigned int _Timeout = COOPERATIVE_TIMEOUT_INFINITE);
Параметры
_Тайм-аут
**
Указывает количество миллисекунд до истечения времени ожидания. Значение COOPERATIVE_TIMEOUT_INFINITE означает, что тайм-аут не установлен.
Возвращаемое значение
Если ожидание было удовлетворено, возвращается значение 0 ; в противном случае значение COOPERATIVE_WAIT_TIMEOUT , указывающее, что время ожидания истекло без сигнала события.
Внимание
В приложении на универсальной платформе Windows (UWP) не вызывайте wait на потоке ASTA, так как этот вызов может блокировать текущий поток и привести к зависанию приложения.
ожидание_нескольких
Ожидает передачи сигнала о нескольких событиях.
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, так как этот вызов может блокировать текущий поток и может привести к тому, что приложение становится неотзывчивым.