Windows Win32Sincronizaçãokernel32.dll
WaitForSingleObject
Bloqueia até que um objeto sincronizável (mutex, evento, semáforo, processo, thread, ...) seja sinalizado, ou até o timeout.
Descrição
Função de espera central e unificada do Windows: praticamente qualquer objeto do kernel pode ser 'esperado' com esta mesma API (um processo é sinalizado quando termina, uma thread quando termina, um mutex quando fica livre) — o Linux não tem uma primitiva genérica equivalente, usando mecanismos distintos por tipo (`waitpid` para processos, `pthread_join` para threads, `pthread_mutex_lock` para mutexes).
Header:
synchapi.hDLL: kernel32.dllNative API: NtWaitForSingleObjectAssinatura
DWORD WaitForSingleObject(HANDLE hHandle, DWORD dwMilliseconds);Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
| hHandle | HANDLE | Handle do objeto a aguardar. |
| dwMilliseconds | DWORD | Tempo máximo de espera; INFINITE para bloquear indefinidamente. |
Valor de retorno
WAIT_OBJECT_0 se sinalizado, WAIT_TIMEOUT se o tempo expirou, WAIT_ABANDONED se era um mutex abandonado pelo dono anterior, ou WAIT_FAILED em erro (consulte GetLastError).
Códigos de erro (GetLastError)
- ERROR_INVALID_HANDLE(6)
- O identificador (handle) informado é inválido.
Relacionadas
Equivalente em Linux x86_64
Linuxwait4— Combine com GetExitCodeProcess para obter o código de saída do processo.Linuxfutex— Equivalência apenas conceitual: futex é uma primitiva de baixo nível usada para implementar mutexes em espaço de usuário; o Windows expõe objetos de sincronização do kernel (mutex/evento) diretamente como abstração de mais alto nível.