Freigeben über


SetThreadpoolTimer-Funktion (threadpoolapiset.h)

Legt das Timerobjekt fest und ersetzt ggf. den vorherigen Timer. Ein Workerthread ruft den Rückruf des Zeitgeberobjekts auf, nachdem das angegebene Timeout abläuft.

Syntax

void SetThreadpoolTimer(
  [in, out]      PTP_TIMER pti,
  [in, optional] PFILETIME pftDueTime,
  [in]           DWORD     msPeriod,
  [in]           DWORD     msWindowLength
);

Parameter

[in, out] pti

Ein Zeiger auf eine TP_TIMER Struktur, die das festzulegende Timerobjekt definiert. Die Funktion CreateThreadpoolTimer gibt diesen Zeiger zurück.

[in, optional] pftDueTime

Ein Zeiger auf eine FILETIME-Struktur , der die absolute oder relative Zeit angibt, zu der der Timer abläuft. Wenn positiv oder null, gibt es die absolute Zeit seit dem 1. Januar 1601 (UTC) an, gemessen in 100 Nanosekundeneinheiten. Wenn negativ, gibt es die Wartezeit im Verhältnis zur aktuellen Zeit an. Weitere Informationen zu Zeitwerten finden Sie unter Dateizeiten.

Wenn dieser Parameter NULL ist, wird das Timerobjekt keine neuen Rückrufe mehr in die Warteschlange stellen (aber rückrufe, die bereits in die Warteschlange eingereiht wurden, werden weiterhin ausgeführt).

Der Timer wird festgelegt, wenn der pftDueTime-Parameter nicht NULL ist.

[in] msPeriod

Der Timerzeitraum in Millisekunden. Wenn dieser Parameter 0 ist, wird der Timer einmal signalisiert. Wenn dieser Parameter größer als 0 ist, ist der Timer periodisch. Ein periodischer Timer reaktiviert automatisch jedes Mal, wenn der Zeitraum verstrichen ist, bis der Timer abgebrochen wird.

[in] msWindowLength

Die maximale Zeitspanne, die das System verzögern kann, bevor der Timerrückruf aufgerufen wird. Wenn dieser Parameter nicht auf 0 festgelegt ist, kann das System Batchaufrufe durchführen, um Strom zu sparen.

Rückgabewert

Keine

Bemerkungen

Wenn Sie den Timer festlegen, wird der vorherige Timer abgebrochen, falls vorhanden.

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 CloseThreadpoolTimer beschriebenen Schritte ausführen.

Wenn die durch pftDueTime angegebene Fälligkeitszeit relativ ist, zählt die Zeit, die das System im Ruhezustand oder Im Ruhezustand verbringt, nicht für den Ablauf des Timers an. Der Timer wird signalisiert, wenn die kumulative Menge der verstrichenen Zeit, die das System im Wachzustand verbringt, der relativen fälligen Zeit oder Periode des Timers entspricht. Wenn die von pftDueTime angegebene Fälligkeitszeit absolut ist, zählt die Zeit, die das System im Ruhezustand oder Im Ruhezustand verbringt, bis zum Ablauf des Timers. Wenn der Timer abläuft, während sich das System im Ruhezustand befindet, wird der Timer sofort beim Aufwachen des Systems signalisiert.

Wenn die durch pftDueTime angegebene Fälligkeit 0 ist, läuft der Timer sofort ab.

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
Unterstützte Mindestversion (Client) Windows Vista [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile threadpoolapiset.h (einschließen von Windows.h unter Windows 7, Windows Server 2008 Windows Server 2008 R2)
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

CloseThreadpoolTimer

CreateThreadpoolTimer

IsThreadpoolTimerSet

Threadpools

WaitForThreadpoolTimerCallbacks