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: NtWaitForMultipleObjectsNota
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âmetro | Tipo | Descrição |
|---|---|---|
| nCount | DWORD | Número de handles em `lpHandles` (máximo MAXIMUM_WAIT_OBJECTS, 64). |
| lpHandles | const HANDLE * | Array de handles a aguardar. |
| bWaitAll | BOOL | Se TRUE, aguarda todos os handles; se FALSE, retorna assim que qualquer um for sinalizado. |
| dwMilliseconds | DWORD | Tempo 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
Equivalente em Linux x86_64