SetThreadpoolWait-Funktion (threadpoolapiset.h)

Legt das Wait-Objekt fest, wobei ggf. das vorherige Wait-Objekt ersetzt wird. Ein Workerthread ruft die Rückruffunktion des Warteobjekts auf, nachdem das Handle signalisiert oder nach Ablauf des angegebenen Timeouts signalisiert wurde.

Syntax

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

Parameter

[in, out] pwa

Ein Zeiger auf eine TP_WAIT-Struktur, die das Wait-Objekt definiert. Die CreateThreadpoolWait Funktion gibt diesen Zeiger zurück.

[in, optional] h

Ein Handle.

Wenn dieser Parameter NULL ist, wird das Wait-Objekt keine neuen Rückrufe mehr in die Warteschlange stellen (aber bereits in die Warteschlange eingereihte Rückrufe treten weiterhin auf).

Wenn dieser Parameter nicht NULL ist, muss er auf ein gültiges objekt mit Wartebarem verweisen.

Mutex wird nicht unterstützt. Wenn ein Handle an einen Mutex übergeben wird, löst der Threadpool eine STATUS_THREADPOOL_HANDLE_EXCEPTION Ausnahme aus, und ExceptionRecord.ExceptionInformation[0] entspricht STATUS_INVALID_PARAMETER_3.

Wenn dieses Handle geschlossen wird, während die Wartezeit noch aussteht, ist das Verhalten der Funktion nicht definiert. Wenn die Wartezeit noch aussteht und der Handle geschlossen werden muss, verwenden Sie CloseThreadpoolWait-, um die Wartezeit abzubrechen und dann den Handle zu schließen.

Die Wartezeit wird als festgelegt betrachtet, wenn dieser Parameter nicht NULL ist.

[in, optional] pftTimeout

Ein Zeiger auf eine FILETIME--Struktur, die die absolute oder relative Zeit angibt, zu der der Wartezeitvorgang timeout sein soll. Wenn dieser Parameter auf einen positiven Wert verweist, gibt er die absolute Zeit seit dem 1. Januar 1601 (UTC) in 100-Nanosekundenintervallen an. Wenn dieser Parameter auf einen negativen Wert zeigt, gibt er den Zeitraum an, der relativ zur aktuellen Zeit gewartet werden soll. Weitere Informationen zu Zeitwerten finden Sie unter File Times.

Wenn dieser Parameter auf 0 zeigt, wird das Wartezeiten sofort beendet. Wenn dieser Parameter NULL ist, wird kein Timeout ausgeführt.

Rückgabewert

Nichts

Bemerkungen

Ein Wait-Objekt kann nur auf ein Handle warten. Durch Festlegen des Handles für ein Wait-Objekt wird ggf. das vorherige Handle ersetzt.

Sie müssen das Ereignis erneut bei dem Wait-Objekt registrieren, bevor sie jedes Mal signalisiert wird, um den Warterückruf auszulösen.

Um eine Anwendung zu kompilieren, die diese Funktion verwendet, definieren Sie _WIN32_WINNT als 0x0600 oder höher.

Beispiele

Ein Beispiel finden Sie unter Verwenden der Threadpoolfunktionen.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows Vista [Desktop-Apps | UWP-Apps]
mindestens unterstützte Server- Windows Server 2008 [Desktop-Apps | UWP-Apps]
Zielplattform- Fenster
Header- threadpoolapiset.h (include Windows.h on Windows 7, Windows Server 2008 Windows Server 2008 R2)
Library Kernel32.lib
DLL- Kernel32.dll

Siehe auch

CloseThreadpoolWait-

CreateThreadpoolWait-

SetThreadpoolWaitEx-

Threadpools

WaitForThreadpoolWaitCallbacks