Condividi tramite


Funzione SetThreadpoolWaitEx (threadpoolapiset.h)

Imposta l'oggetto wait, sostituendo l'oggetto wait precedente, se presente. Un thread di lavoro chiama la funzione di callback dell'oggetto wait dopo che l'handle viene segnalato o dopo la scadenza del timeout specificato.

Sintassi

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

Parametri

[in, out] pwa

Puntatore a una struttura TP_WAIT che definisce l'oggetto wait. La funzione CreateThreadpoolWait restituisce questo puntatore.

[in, optional] h

Handle.

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

Se questo parametro non è NULL, deve fare riferimento a un oggetto waitable valido.

Se questo handle viene chiuso mentre l'attesa è ancora in sospeso, il comportamento della funzione non è definito. Se l'attesa è ancora in sospeso e l'handle deve essere chiuso, usare CloseThreadpoolWait per annullare l'attesa e quindi chiudere l'handle.

L'attesa viene considerata impostata se questo parametro non è NULL.

[in, optional] pftTimeout

Puntatore a una struttura FILETIME che specifica il tempo assoluto o relativo in cui l'operazione di attesa deve essere timeout. Se questo parametro punta a un valore positivo, indica l'ora assoluta dal 1° gennaio 1601 (UTC), in intervalli di 100 nanosecondi. 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 timeout di attesa viene eseguito immediatamente. Per altre informazioni sui valori temporali, vedere Tempi file.

Se questo parametro è NULL, l'attesa non timeout.

Reserved

Riservato. Deve essere NULL.

Valore restituito

Restituisce TRUE se l'attesa è stata impostata in precedenza ed è stata annullata. In caso contrario restituisce FALSE.

Se lo stato precedente dell'attesa è stato "impostato" e la funzione restituisce FALSE, un callback è in corso o sta per iniziare. Vedere le osservazioni per ulteriori discussioni.

Commenti

Un oggetto wait può attendere un solo handle. L'impostazione dell'handle per un oggetto wait sostituisce l'handle di attesa precedente, se presente.

In alcuni casi, le funzioni di callback potrebbero essere eseguite dopo che un'applicazione chiude il timer del threadpool. Per evitare questo comportamento, un'applicazione deve seguire i passaggi descritti in CloseThreadpoolWait.

Se il timeout specificato da pftTimeout è relativo, il tempo trascorso dal sistema nel sonno o nell'ibernazione non viene conteggiato verso la scadenza dell'attesa. L'attesa viene segnalata quando la quantità cumulativa di tempo trascorso il sistema passa nello stato di sveglia equivale al timeout relativo dell'attesa. Se il timeout specificato da pftTimeout è assoluto, il tempo trascorso dal sistema nel sonno o nell'ibernazione viene conteggiato verso la scadenza dell'attesa. Se l'attesa scade mentre il sistema sta dormendo, l'attesa viene segnalata immediatamente quando il sistema viene riattivato.

Requisiti

Requisito Valore
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

CloseThreadpoolWait

CreateThreadpoolWait

Pool di thread

WaitForThreadpoolWaitCallbacks