Share via


Classe event

Um evento de redefinição manual que está explicitamente ciente do Runtime de Simultaneidade.

Sintaxe

class event;

Membros

Construtores públicos

Nome Descrição
Destruidor ~event Destrói um evento.

Métodos públicos

Nome Descrição
reset Redefine o evento como o estado não sinalizado.
set Sinaliza o evento.
wait Aguarda que o evento seja sinalizado.
wait_for_multiple Aguarda que vários eventos sejam sinalizados.

Constantes públicas

Nome Descrição
timeout_infinite Valor que indica que uma espera nunca deve atingir o tempo limite.

Comentários

Para obter mais informações, confira Estrutura de dados de sincronização.

Hierarquia de herança

event

Requisitos

Cabeçalho: concrt.h

Namespace: concurrency

event

Constrói um novo evento.

_CRTIMP event();

Comentários

~acontecimento

Destrói um evento.

~event();

Comentários

Espera-se que não haja threads aguardando o evento quando o destruidor for executado. Permitir que o evento se destrua com threads que ainda estão esperando resulta em um comportamento indefinido.

reset

Redefine o evento como o estado não sinalizado.

void reset();

set

Sinaliza o evento.

void set();

Comentários

Sinalizar o evento pode fazer com que um número arbitrário de contextos aguardando o evento se torne executável.

timeout_infinite

Valor que indica que uma espera nunca deve atingir o tempo limite.

static const unsigned int timeout_infinite = COOPERATIVE_TIMEOUT_INFINITE;

wait

Aguarda que o evento seja sinalizado.

size_t wait(unsigned int _Timeout = COOPERATIVE_TIMEOUT_INFINITE);

Parâmetros

_Timeout
Indica o número de milissegundos antes do tempo limite de espera. O valor COOPERATIVE_TIMEOUT_INFINITE significa que não há tempo limite.

Valor de Devolução

Se a espera for atendida, o valor 0 será retornado; caso contrário, o valor COOPERATIVE_WAIT_TIMEOUT para indicar que a espera atingiu o tempo limite sem que o evento fosse sinalizado.

Importante

Em um aplicativo da Plataforma Universal do Windows (UWP), não chame wait no thread ASTA porque essa chamada pode bloquear o thread atual e pode fazer com que o aplicativo não responda.

wait_for_multiple

Aguarda que vários eventos sejam sinalizados.

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

Parâmetros

_PPEvents
Uma matriz de eventos para aguardar. O número de eventos dentro da matriz é indicado pelo parâmetro count.

count
A contagem de eventos dentro da matriz fornecida no parâmetro _PPEvents.

_FWaitAll
Se definido como o valor true, o parâmetro especifica que todos os eventos dentro da matriz fornecida no parâmetro _PPEvents devem ser sinalizados para atender à espera. Se definido como o valor false, ele especifica que qualquer evento dentro da matriz fornecida no parâmetro _PPEvents que está sendo sinalizado atenderá à espera.

_Timeout
Indica o número de milissegundos antes do tempo limite de espera. O valor COOPERATIVE_TIMEOUT_INFINITE significa que não há tempo limite.

Valor de Devolução

Se a espera foi atendida, o índice dentro da matriz fornecido no parâmetro _PPEvents que satisfez a condição de espera; caso contrário, o valor COOPERATIVE_WAIT_TIMEOUT para indicar que a espera atingiu o tempo limite sem que a condição fosse atendida.

Comentários

Se o parâmetro _FWaitAll for definido como o valor true para indicar que todos os eventos devem ser sinalizados para atender à espera, o índice retornado pela função não terá nenhum significado especial além do fato de que ele não é o valor COOPERATIVE_WAIT_TIMEOUT.

Importante

Em um aplicativo da Plataforma Universal do Windows (UWP), não chame wait_for_multiple no thread ASTA porque essa chamada pode bloquear o thread atual e pode fazer com que o aplicativo não responda.

Confira também

Namespace de simultaneidade