Функция WaitForInputIdle (winuser.h)

Ожидает, пока указанный процесс завершит обработку своих начальных входных данных, ожидает ввода данных пользователем без ожидающих ввода данных или до истечения интервала ожидания.

Синтаксис

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

Параметры

[in] hProcess

Дескриптор процесса. Если этот процесс является консольным приложением или у него нет очереди сообщений, функция WaitForInputIdle возвращается немедленно.

[in] dwMilliseconds

Интервал времени ожидания в миллисекундах. Если dwMilliseconds имеет значение INFINITE, функция не возвращается, пока процесс не будет бездействуем.

Возвращаемое значение

В следующей таблице показаны возможные возвращаемые значения для этой функции.

Возвращаемый код/значение Описание
0
Ожидание выполнено успешно.
WAIT_TIMEOUT
Ожидание было прервано из-за истечения времени ожидания.
WAIT_FAILED
Произошла ошибка.

Комментарии

Функция WaitForInputIdle позволяет потоку приостанавливать выполнение до завершения инициализации указанного процесса и ожидает ввода данных пользователем без ожидания ввода. Если процесс содержит несколько потоков, функция WaitForInputIdle возвращается, как только любой поток становится бездействующий.

WaitForInputIdle можно использовать в любое время, а не только во время запуска приложения. Однако WaitForInputIdle ожидает только один раз, пока процесс не станет бездействующий; последующие вызовы WaitForInputIdle возвращаются немедленно, независимо от того, находится ли процесс в состоянии простоя или занят.

WaitForInputIdle может быть полезен для синхронизации родительского процесса и только что созданного дочернего процесса. Когда родительский процесс создает дочерний процесс, функция CreateProcess возвращает , не дожидаясь завершения инициализации дочернего процесса. Прежде чем пытаться связаться с дочерним процессом, родительский процесс может использовать функцию WaitForInputIdle , чтобы определить, когда была завершена инициализация дочернего элемента. Например, родительский процесс должен использовать функцию WaitForInputIdle , прежде чем пытаться найти окно, связанное с дочерним процессом.

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header winuser.h (включая Windows.h)
Библиотека User32.lib
DLL User32.dll
Набор API ext-ms-win-ntuser-misc-l1-1-0 (представлено в Windows 8)

См. также раздел

CreateProcess

Функции процессов и потоков

Синхронизация выполнения нескольких потоков