Funzione WaitForInputIdle (winuser.h)

Attende fino al termine dell'elaborazione dell'input iniziale e attende l'input dell'utente senza input in sospeso o finché l'intervallo di timeout non è trascorso.

Sintassi

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

Parametri

[in] hProcess

Handle per il processo. Se questo processo è un'applicazione console o non ha una coda di messaggi, WaitForInputIdle restituisce immediatamente.

[in] dwMilliseconds

Intervallo di timeout, in millisecondi. Se dwMilliseconds è INFINITE, la funzione non restituisce finché il processo non è inattiva.

Valore restituito

Nella tabella seguente vengono illustrati i possibili valori restituiti per questa funzione.

Codice/valore restituito Descrizione
0
L'attesa è stata soddisfatta correttamente.
WAIT_TIMEOUT
L'attesa è stata terminata perché l'intervallo di timeout è trascorso.
WAIT_FAILED
Si è verificato un errore.

Commenti

La funzione WaitForInputIdle consente a un thread di sospendere l'esecuzione fino al termine del processo specificato e di attendere l'input dell'utente senza input in sospeso. Se il processo ha più thread, la funzione WaitForInputIdle restituisce non appena un thread diventa inattiva.

WaitForInputIdle può essere usato in qualsiasi momento, non solo durante l'avvio dell'applicazione. Tuttavia, WaitForInputIdle attende una sola volta che un processo diventi inattiva; le chiamate WaitForInputIdle successive restituiscono immediatamente, se il processo è inattiva o occupato.

WaitForInputIdle può essere utile per sincronizzare un processo padre e un processo figlio appena creato. Quando un processo padre crea un processo figlio, la funzione CreateProcess restituisce senza attendere il completamento dell'inizializzazione del processo figlio. Prima di provare a comunicare con il processo figlio, il processo padre può usare la funzione WaitForInputIdle per determinare quando è stata completata l'inizializzazione del figlio. Ad esempio, il processo padre deve usare la funzione WaitForInputIdle prima di cercare una finestra associata al processo figlio.

Requisiti

Requisito Valore
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione winuser.h (include Windows.h)
Libreria User32.lib
DLL User32.dll
Set di API ext-ms-win-ntuser-misc-l1-1-0 (introdotto in Windows 8)

Vedi anche

CreateProcess

Funzioni di processi e thread

Sincronizzazione dell'esecuzione di più thread