Voltar à lista
Windows Win32Sincronizaçãokernel32.dll

WaitForMultipleObjects

Bloqueia até que um ou todos os objetos de um conjunto sejam sinalizados, ou até o timeout.

Descrição

Generalização de WaitForSingleObject para múltiplos handles — vagamente análogo em propósito a `poll`/`select` do Linux, mas operando sobre objetos sincronizáveis do kernel Windows em geral, não apenas descritores de arquivo/socket.

Header: synchapi.hDLL: kernel32.dllNative API: NtWaitForMultipleObjects

Nota

Limitada a 64 handles por chamada (MAXIMUM_WAIT_OBJECTS) — para aguardar mais objetos, é preciso combinar com múltiplas threads ou usar I/O Completion Ports.

Assinatura

DWORD WaitForMultipleObjects(
    DWORD nCount,
    const HANDLE * lpHandles,
    BOOL bWaitAll,
    DWORD dwMilliseconds
);

Parâmetros

ParâmetroTipoDescrição
nCountDWORDNúmero de handles em `lpHandles` (máximo MAXIMUM_WAIT_OBJECTS, 64).
lpHandlesconst HANDLE *Array de handles a aguardar.
bWaitAllBOOLSe TRUE, aguarda todos os handles; se FALSE, retorna assim que qualquer um for sinalizado.
dwMillisecondsDWORDTempo máximo de espera; INFINITE para bloquear indefinidamente.

Valor de retorno

WAIT_OBJECT_0 + índice do objeto sinalizado, WAIT_TIMEOUT, ou WAIT_FAILED em erro (consulte GetLastError).

Códigos de erro (GetLastError)

ERROR_INVALID_HANDLE(6)
O identificador (handle) informado é inválido.
ERROR_INVALID_PARAMETER(87)
Parâmetro incorreto.

Relacionadas