Funzione SetThreadpoolTimerEx (threadpoolapiset.h)

Imposta l'oggetto timer, sostituendo il timer precedente, se presente. Un thread di lavoro chiama il callback dell'oggetto timer dopo la scadenza del timeout specificato.

Sintassi

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

Parametri

[in, out] pti

Puntatore a una struttura TP_TIMER che definisce l'oggetto timer da impostare. La funzione CreateThreadpoolTimer restituisce questo puntatore.

[in, optional] pftDueTime

Puntatore a una struttura FILETIME che specifica l'ora assoluta o relativa in cui il timer deve scadere. Se questo parametro punta a un valore positivo, indica l'ora assoluta dal 1° gennaio 1601 (UTC), misurata in 100 unità di nanosecondo. Se questo parametro punta a un valore negativo, indica la quantità di tempo di attesa rispetto all'ora corrente. Se questo parametro punta a zero, il timer scade immediatamente. Per altre informazioni sui valori temporali, vedere Tempi file.

Se questo parametro è NULL, l'oggetto timer smetterà di accodare nuovi callback ( ma i callback già accodati si verificheranno).

Il timer viene impostato se il parametro pftDueTime è diverso da NULL.

[in] msPeriod

Periodo timer, espresso in millisecondi. Se questo parametro è zero, il timer viene segnalato una volta. Se questo parametro è maggiore di zero, il timer è periodico. Un timer periodico riattiva automaticamente ogni volta che il periodo scade, fino a quando il timer non viene annullato.

[in, optional] msWindowLength

La quantità massima di tempo che il sistema può ritardare prima di chiamare il callback timer. Se questo parametro è impostato, il sistema può eseguire chiamate batch per risparmiare energia.

Valore restituito

Restituisce TRUE se il timer è stato impostato in precedenza ed è stato annullato. In caso contrario restituisce FALSE.

Se lo stato precedente del timer è stato "impostato" e la funzione restituisce FALSE, un callback è in corso o sta per iniziare. Per ulteriori informazioni, vedere le osservazioni.

Commenti

Se si imposta il timer, il timer precedente viene annullato, se presente.

In alcuni casi, le funzioni di callback possono essere eseguite dopo che un'applicazione chiude il timer del pool di thread. Per evitare questo comportamento, un'applicazione deve seguire la procedura descritta in CloseThreadpoolTimer.

Se il tempo di scadenza specificato da pftDueTime è relativo, il tempo trascorso dal sistema in sospensione o ibernazione non viene conteggiato per la scadenza del timer. Il timer viene segnalato quando la quantità cumulativa di tempo trascorso che il sistema impiega nello stato di riattivazione è uguale al tempo o al periodo di scadenza relativo del timer. Se il tempo di scadenza specificato da pftDueTime è assoluto, il tempo trascorso dal sistema in sospensione o ibernazione viene conteggiato per la scadenza del timer. Se il timer scade mentre il sistema è in sospensione, il timer viene segnalato immediatamente alla riattivazione del sistema.

Per compilare un'applicazione che usa questa funzione, definire _WIN32_WINNT come 0x0600 o versione successiva.

Esempio

Per un esempio, vedere Uso delle funzioni del pool di thread.

Requisiti

   
Client minimo supportato Windows 8 [app desktop | App UWP]
Server minimo supportato Windows Server 2012 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione threadpoolapiset.h
Libreria Kernel32.lib
DLL Kernel32.dll

Vedere anche

CloseThreadpoolTimer

CreateThreadpoolTimer

IsThreadpoolTimerSet

Pool di thread

WaitForThreadpoolTimerCallbacks