Udostępnij za pośrednictwem


event — Klasa

Zdarzenie resetowania ręcznego, które jawnie uwzględnia środowisko uruchomieniowe współbieżności.

Składnia

class event;

Elementy członkowskie

Konstruktory publiczne

Nazwa/nazwisko opis
~destruktor zdarzeń Niszczy zdarzenie.

Metody publiczne

Nazwa/nazwisko opis
resetować Resetuje zdarzenie do stanu niesygnalizowanego.
set Sygnalizuje zdarzenie.
czekać Czeka, aż zdarzenie zostanie zasygnalizowane.
wait_for_multiple Czeka na sygnał wielu zdarzeń.

Stałe publiczne

Nazwa/nazwisko opis
timeout_infinite Wartość wskazująca, że limit czasu oczekiwania nigdy nie powinien być przekroczony.

Uwagi

Aby uzyskać więcej informacji, zobacz Synchronizacja struktur danych.

Hierarchia dziedziczenia

event

Wymagania

Nagłówek: concrt.h

Przestrzeń nazw: współbieżność

event

Tworzy nowe zdarzenie.

_CRTIMP event();

Uwagi

~zdarzenie

Niszczy zdarzenie.

~event();

Uwagi

Oczekuje się, że nie ma wątków oczekujących na zdarzenie po uruchomieniu destruktora. Zezwolenie na destrukcję zdarzenia z wątkami nadal czeka na niezdefiniowane zachowanie.

Resetowanie

Resetuje zdarzenie do stanu niesygnalizowanego.

void reset();

set

Sygnalizuje zdarzenie.

void set();

Uwagi

Sygnał zdarzenia może spowodować dowolną liczbę kontekstów oczekujących na uruchomienie zdarzenia.

timeout_infinite

Wartość wskazująca, że limit czasu oczekiwania nigdy nie powinien być przekroczony.

static const unsigned int timeout_infinite = COOPERATIVE_TIMEOUT_INFINITE;

wait

Czeka, aż zdarzenie zostanie zasygnalizowane.

size_t wait(unsigned int _Timeout = COOPERATIVE_TIMEOUT_INFINITE);

Parametry

_Limit czasu
Wskazuje liczbę milisekund przed upływem limitu czasu oczekiwania. Wartość COOPERATIVE_TIMEOUT_INFINITE oznacza, że nie ma limitu czasu.

Wartość zwracana

Jeśli oczekiwanie zostało spełnione, zwracana jest wartość 0 . W przeciwnym razie wartość COOPERATIVE_WAIT_TIMEOUT wskazująca, że upłynął limit czasu oczekiwania bez zasygnalizowanego zdarzenia.

Ważne

W aplikacji platforma uniwersalna systemu Windows (UWP) nie należy wywoływać wait wątku usługi ASTA, ponieważ to wywołanie może zablokować bieżący wątek i może spowodować, że aplikacja przestanie odpowiadać.

wait_for_multiple

Czeka na sygnał wielu zdarzeń.

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

Parametry

_PPEvents
Tablica zdarzeń do oczekiwania. Liczba zdarzeń w tablicy jest wskazywana przez count parametr .

count
Liczba zdarzeń w tablicy podanej w parametrze _PPEvents .

_FWaitAll
Jeśli ustawiono wartość true, parametr określa, że wszystkie zdarzenia w tablicy podanej w parametrze _PPEvents muszą zostać zasygnalizowane, aby spełnić oczekiwania. Jeśli ustawiono wartość false, określa, że każde zdarzenie w tablicy dostarczonej w _PPEvents parametrze, który staje się sygnalizowany, będzie spełniać oczekiwania.

_Limit czasu
Wskazuje liczbę milisekund przed upływem limitu czasu oczekiwania. Wartość COOPERATIVE_TIMEOUT_INFINITE oznacza, że nie ma limitu czasu.

Wartość zwracana

Jeśli oczekiwanie zostało spełnione, indeks w tablicy podanej w parametrze _PPEvents , który spełnia warunek oczekiwania; w przeciwnym razie wartość COOPERATIVE_WAIT_TIMEOUT wskazująca, że upłynął limit czasu oczekiwania bez spełnienia warunku.

Uwagi

Jeśli parametr _FWaitAll jest ustawiony na wartość true wskazującą, że wszystkie zdarzenia muszą zostać zasygnalizowane, aby spełnić oczekiwania, indeks zwracany przez funkcję nie ma specjalnego znaczenia innego niż fakt, że nie jest to wartość COOPERATIVE_WAIT_TIMEOUT.

Ważne

W aplikacji platforma uniwersalna systemu Windows (UWP) nie należy wywoływać wait_for_multiple wątku usługi ASTA, ponieważ to wywołanie może zablokować bieżący wątek i może spowodować, że aplikacja przestanie odpowiadać.

Zobacz też

Przestrzeń nazw współbieżności