setThreadpoolWait 函数 (threadpoolapiset.h)

设置 wait 对象,替换上一个等待对象(如果有)。 工作线程在句柄发出信号后或在指定的超时到期后调用等待对象的回调函数。

语法

void SetThreadpoolWait(
  [in, out]      PTP_WAIT  pwa,
  [in, optional] HANDLE    h,
  [in, optional] PFILETIME pftTimeout
);

参数

[in, out] pwa

指向定义 wait 对象的 TP_WAIT 结构的指针。 CreateThreadpoolWait 函数返回此指针。

[in, optional] h

句柄。

如果此参数为 NULL,则 wait 对象将停止将新回调 (但已排队的回调仍将) 发生。

如果此参数不为 NULL,则必须引用有效的可等待对象。

如果在等待仍处于挂起状态时关闭此句柄,则函数的行为未定义。 如果等待仍处于挂起状态,并且必须关闭句柄,请使用 CloseThreadpoolWait 取消等待,然后关闭句柄。

如果此参数为非 NULL,则认为设置了等待。

[in, optional] pftTimeout

指向 FILETIME 结构的指针,该结构指定等待操作应超时的绝对时间或相对时间。如果此参数指向正值,则表示自 1601 年 1 月 1 日以来的绝对时间 (UTC) ,间隔为 100 纳秒。 如果此参数指向负值,则指示相对于当前时间等待的时间量。 有关时间值的详细信息,请参阅 文件时间

如果此参数指向 0,则等待会立即超时。 如果此参数为 NULL,则等待不会超时。

返回值

备注

等待对象只能等待一个句柄。 设置等待对象的句柄会替换以前的句柄(如果有)。

在每次发出信号以触发等待回调之前,必须向等待对象重新注册事件。

若要编译使用此函数的应用程序,请将_WIN32_WINNT定义为 0x0600 或更高版本。

示例

有关示例,请参阅 使用线程池函数

要求

要求
最低受支持的客户端 Windows Vista [桌面应用 | UWP 应用]
最低受支持的服务器 Windows Server 2008 [桌面应用 | UWP 应用]
目标平台 Windows
标头 threadpoolapiset.h (包括 Windows 7 上的 Windows.h、Windows Server 2008 Windows Server 2008 R2)
Library Kernel32.lib
DLL Kernel32.dll

另请参阅

CloseThreadpoolWait

CreateThreadpoolWait

SetThreadpoolWaitEx

线程池

WaitForThreadpoolWaitCallbacks