SetThreadpoolWaitEx 函式 (threadpoolapiset.h)

設定 wait 物件,並取代先前的等候物件,如果有的話。 背景工作線程會在句柄收到訊號或指定的逾時到期之後呼叫等候物件的回呼函式。

語法

BOOL SetThreadpoolWaitEx(
  [in, out]      PTP_WAIT  pwa,
  [in, optional] HANDLE    h,
  [in, optional] PFILETIME pftTimeout,
                 PVOID     Reserved
);

參數

[in, out] pwa

定義 wait 物件的 TP_WAIT 結構的指標。 CreateThreadpoolWait 函式會傳回此指標。

[in, optional] h

控制代碼。

如果此參數為 NULL,等候物件將會停止將新的回呼排入佇列 (但已排入佇列的回呼仍會發生) 。

如果此參數不是 NULL,則必須參考有效的可等候物件。

如果等候仍在擱置時關閉此句柄,則函式的行為是未定義的。 如果等候仍在擱置中,而且必須關閉句柄,請使用 CloseThreadpoolWait 取消等候,然後關閉句柄。

如果此參數為非 NULL,則會考慮設定等候。

[in, optional] pftTimeout

FILETIME 結構的指標,指定等候作業應該逾時的絕對或相對時間。如果此參數指向正值,則會以 100 奈秒間隔表示自 1601 年 1 月 1 日 (UTC) 以來的絕對時間。 如果此參數指向負值,表示相對於目前時間等候的時間量。 如果此參數指向零,則等候會立即逾時。 如需時間值的詳細資訊,請參閱 檔案時間

如果此參數為 NULL,則等候不會逾時。

Reserved

保留的。 必須是 Null。

傳回值

如果先前已設定並取消等候,則傳回 TRUE。 否則傳回 FALSE。

如果等候的先前狀態為 「set」,且函式會傳回 FALSE,則回呼正在進行中或即將開始。 如需進一步的討論,請參閱備註。

備註

wait 物件只能等候一個句柄。 設定 wait 物件的句柄會取代先前的等候句柄,如果有的話。

在某些情況下,回呼函式可能會在應用程式關閉線程集區定時器之後執行。 若要避免此行為,應用程式應遵循 CloseThreadpoolWait 中所述的步驟。

如果 pftTimeout 指定的逾時是相對的,則系統花費在睡眠或休眠的時間不會計入等候的到期時間。 當系統花費在喚醒狀態的累計耗用時間量等於等候的相對逾時時,就會發出等候訊號。 如果 pftTimeout 指定的逾時是絕對的,則系統花費在睡眠或休眠的時間會計入等候的到期時間。 如果系統睡眠時等候到期,系統喚醒時會立即發出等候訊號。

規格需求

需求
最低支援的用戶端 Windows 8 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2012 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 threadpoolapiset.h
程式庫 Kernel32.lib
DLL Kernel32.dll

另請參閱

CloseThreadpoolWait

CreateThreadpoolWait

線程集區

WaitForThreadpoolWaitCallbacks