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 retorno
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 retorno
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.