Compartilhar via


WaitForSingleObject

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Essa função retorna quando o objeto especificado está no sinalizado estado ou quando expirar o intervalo tempo limite.

Syntax

DWORD WaitForSingleObject(
  HANDLE hHandle,
  DWORD dwMilliseconds
);

Parameters

  • hHandle
    [no] Identificador para o objeto. Para obter uma lista dos tipos de objeto cujas alças podem ser especificadas, consulte a seção " Comentários ".
  • dwMilliseconds
    [no] Especifica o intervalo tempo limite, em milissegundos. A função retorna se o intervalo tiver decorrido, mesmo se estado do objeto é não sinalizado. Se dwMilliseconds for zero, a função testa estado do objeto e retorna imediatamente. Se dwMilliseconds é infinito, tempo limite intervalo a função nunca decorrido.

Return Value

Se a função for bem-sucedido, o valor de retorno indica o evento que causou a função para retornar. A seguinte tabela mostra os valores possíveis.

Valor Descrição

WAIT_FAILED

Indica falha por um do seguinte razões:

  • Não há memória suficiente no sistema.
  • Dois segmentos estão aguardando o mesmo evento interrupção.
  • O atual segmento está sendo finalizado.
  • O subjacente representado pelo objeto hHandle foi excluído.
  • O identificador é inválido.

WAIT_OBJECT_0

O estado do objeto especificado está sinalizado.

WAIT_TIMEOUT

O intervalo tempo limite decorrido e estado do objeto é não sinalizado.

Para informações de erro estendidas get, chamar GetLastError.

Remarks

Windows CE 1.0 através de 2.12 não suporte aguardando semáforos, objetos notificação de alteração, entrada e Timers. Windows CE 3.0 e posterior suporte aguardando semáforos.

Windows CE 1.0 e 1.01, essa função não é possível aguardar no processo ou segmento alças.

Se um identificador evento é fechado após WaitForSingleObject é chamado, ele nunca será sinalizado e retornar apenas após tempo limite expirou.

O WaitForSingleObject função verifica o atual estado do objeto especificado. Se estado do objeto é não sinalizado, o segmento chamado insere um estado espera eficiente. O segmento consome muito pouco tempo de processador enquanto aguardava o estado objeto seja sinalizado ou o intervalo tempo limite para decorrer. O valor de tempo limite precisa ser um número positivo entre zero e 0x7FFFFFFF. O valor de tempo limite máximo não igual a 0x7FFFFFFF é infinito. O valor de tempo limite infinito é 0xFFFFFFFF. Qualquer valor de tempo limite entre 0x7FFFFFFF e 0xFFFFFFFF — isto é, valores de 0x80000000 através de 0xFFFFFFFE — é equivalente a 0x7FFFFFFF. Se você precisar uma maior valor de tempo limite que o máximo de 0x7FFFFFFF, use o valor para infinito (0xFFFFFFFF).

Antes de retornar, uma função de espera modifica o estado de alguns tipos de objetos sincronização. Modificação ocorre somente para o objeto cujos sinalizado estado causou a função para retornar. De exemplo, a contagem de um objeto do semáforo é diminuída por um. O WaitForSingleObject função pode esperar para qualquer um do seguinte objetos:

  • Evento
  • Mutex
  • Semáforo
  • Processo
  • Segmento

Use cuidado quando chamado as funções de espera e codificar que direta ou indiretamente cria janelas. Se um segmento cria todas as janelas, ele deverá mensagens processo. Difusões de mensagem são enviadas para todas as janelas no sistema. Um segmento que usa uma função de espera com nenhum intervalo tempo limite pode causar o sistema para ficar bloqueada. De exemplo, o protocolo Dynamic Data Exchange (DDE) e a função COM CoInitialize Ambos indiretamente criar janelas que podem causar um bloqueio. Portanto, se você tiver um segmento que cria janelas, use MsgWaitForMultipleObjects ou MsgWaitForMultipleObjectsEx, em vez de WaitForSingleObject.

Cada tipo objeto, such as memória mapas, semáforos, eventos, mensagem filas, exclusões mútuas e timers de monitoração, tem sua própria separar espaço para nome. Esvaziar seqüências de caracteres, " ", são tratados como nomeado objetos. Em plataformas com base em Área de trabalho Windows, sincronização objetos todos compartilhar o mesmo namespace.

Requirements

Header winbase.h
Library coredll.lib
Windows Embedded CE Windows CE 1.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also

Reference

Synchronization Functions
WaitForMultipleObjects
CreateEvent
PulseEvent
ResetEvent
SetEvent
Sleep

Other Resources

CreateFile