Поделиться через


Функция 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

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

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