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
标头 winuser.h (包括 Windows.h)
Library User32.lib
DLL User32.dll
API 集 在 Windows 8) 中引入的 ext-ms-win-ntuser-misc-l1-1-0 (

另请参阅

CreateProcess

进程和线程函数

同步多个线程的执行