SetThreadpoolWaitEx-Funktion (threadpoolapiset.h)

Legt das Wait-Objekt fest und ersetzt dabei ggf. das vorherige Wait-Objekt. Ein Workerthread ruft die Rückruffunktion des Warteobjekts auf, nachdem das Handle signalisiert wird oder das angegebene Timeout abgelaufen ist.

Syntax

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

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 Handler.

Wenn dieser Parameter NULL ist, wird das wait-Objekt keine neuen Rückrufe mehr in die Warteschlange stellen (rückrufe werden jedoch bereits in die Warteschlange eingereiht).

Wenn dieser Parameter nicht NULL ist, muss er auf ein gültiges wartebares Objekt verweisen.

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

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

[in, optional] pftTimeout

Ein Zeiger auf eine FILETIME-Struktur , die die absolute oder relative Zeit angibt, zu der ein Timeout des Wartevorgangs erfolgen soll. Wenn dieser Parameter auf einen positiven Wert zeigt, gibt er die absolute Zeit seit dem 1. Januar 1601 (UTC) in Intervallen von 100 Nanosekunden an. Wenn dieser Parameter auf einen negativen Wert zeigt, gibt er die Wartezeit im Verhältnis zur aktuellen Zeit an. Wenn dieser Parameter auf 0 (null) zeigt, tritt für die Wartezeit sofort ein Zeitüberschreitung auf. Weitere Informationen zu Zeitwerten finden Sie unter Dateizeiten.

Wenn dieser Parameter NULL ist, tritt für die Wartezeit kein Timeout auf.

Reserved

Reserviert. Muss NULL sein.

Rückgabewert

Gibt TRUE zurück, wenn die Wartezeit zuvor festgelegt und abgebrochen wurde. Andernfalls wird FALSE zurückgegeben.

Wenn der vorherige Wartezustand "festgelegt" war und die Funktion FALSE zurückgibt, wird ein Rückruf ausgeführt oder beginnt. Weitere Informationen finden Sie in den Anmerkungen.

Hinweise

Ein Wait-Objekt kann nur auf ein Handle warten. Wenn Sie das Handle für ein Wait-Objekt festlegen, wird ggf. das vorherige Wartehandle ersetzt.

In einigen Fällen können Rückruffunktionen ausgeführt werden, nachdem eine Anwendung den Threadpool-Timer geschlossen hat. Um dieses Verhalten zu verhindern, sollte eine Anwendung die unter CloseThreadpoolWait beschriebenen Schritte ausführen.

Wenn das durch pftTimeout angegebene Timeout relativ ist, zählt die Zeit, die das System im Ruhezustand oder Ruhezustand verbringt, nicht zum Ablauf der Wartezeit. Die Wartezeit wird signalisiert, wenn die kumulative Verstrichene Zeit, die das System im Wachzustand verbringt, dem relativen Timeout der Warte entspricht. Wenn das durch pftTimeout angegebene Timeout absolut ist, zählt die Zeit, die das System im Ruhezustand oder Im Ruhezustand verbringt, bis zum Ablauf der Wartezeit. Wenn die Wartezeit abläuft, während das System im Ruhezustand ist, wird die Wartezeit sofort signalisiert, wenn das System reaktiviert wird.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8 [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2012 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile threadpoolapiset.h
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

CloseThreadpoolWait

CreateThreadpoolWait

Threadpools

WaitForThreadpoolWaitCallbacks