Função WaitForInputIdle (winuser.h)

Aguarda até que o processo especificado termine de processar sua entrada inicial e esteja aguardando a entrada do usuário sem entrada pendente ou até que o intervalo de tempo limite tenha decorrido.

Sintaxe

DWORD WaitForInputIdle(
  [in] HANDLE hProcess,
  [in] DWORD  dwMilliseconds
);

Parâmetros

[in] hProcess

Um identificador para o processo. Se esse processo for um aplicativo de console ou não tiver uma fila de mensagens, WaitForInputIdle retornará imediatamente.

[in] dwMilliseconds

O intervalo de tempo limite em milissegundos. Se dwMilliseconds for INFINITE, a função não retornará até que o processo esteja ocioso.

Retornar valor

A tabela a seguir mostra os possíveis valores retornados para essa função.

Valor/código retornado Descrição
0
A espera foi atendida com êxito.
WAIT_TIMEOUT
A espera foi encerrada porque o intervalo de tempo limite expirou.
WAIT_FAILED
Ocorreu um erro.

Comentários

A função WaitForInputIdle permite que um thread suspenda sua execução até que o processo especificado termine sua inicialização e esteja aguardando a entrada do usuário sem entrada pendente. Se o processo tiver vários threads, a função WaitForInputIdle retornará assim que qualquer thread ficar ocioso.

WaitForInputIdle pode ser usado a qualquer momento, não apenas durante a inicialização do aplicativo. No entanto, WaitForInputIdle aguarda apenas uma vez para que um processo fique ocioso; As chamadas waitForInputIdle subsequentes retornam imediatamente, independentemente de o processo ser ocioso ou ocupado.

WaitForInputIdle pode ser útil para sincronizar um processo pai e um processo filho recém-criado. Quando um processo pai cria um processo filho, a função CreateProcess retorna sem esperar que o processo filho conclua sua inicialização. Antes de tentar se comunicar com o processo filho, o processo pai pode usar a função WaitForInputIdle para determinar quando a inicialização do filho foi concluída. Por exemplo, o processo pai deve usar a função WaitForInputIdle antes de tentar encontrar uma janela associada ao processo filho.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho winuser.h (inclua Windows.h)
Biblioteca User32.lib
DLL User32.dll
Conjunto de APIs ext-ms-win-ntuser-misc-l1-1-0 (introduzido no Windows 8)

Confira também

CreateProcess

Funções de thread e processo

Sincronizando a execução de vários threads