Condividi tramite


Funzione RtwqAllocateSerialWorkQueue (rtworkq.h)

Crea una coda di lavoro virtuale sopra un'altra coda di lavoro che è garantita la serializzazione degli elementi di lavoro. La coda di lavoro seriale esegue il wrapping di una coda di lavoro multithreading esistente. La coda di lavoro seriale applica un ordine di esecuzione FIFO (First-In First-Out).

Sintassi

HRESULT RtwqAllocateSerialWorkQueue(
  [in]  DWORD workQueueIdIn,
  [out] DWORD *workQueueIdOut
);

Parametri

[in] workQueueIdIn

Identificatore di una coda di lavoro esistente. Deve trattarsi di una coda multithreading o di un'altra coda di lavoro seriale. È possibile usare una delle opzioni seguenti:

  • Coda di lavoro predefinita (RTWQ_STANDARD_WORKQUEUE). Vedere RTWQ_WORKQUEUE_TYPE.
  • Coda multithreading della piattaforma (RTWQ_MULTITHREADED_WORKQUEUE). Vedere RTWQ_WORKQUEUE_TYPE.
  • Coda multithreading restituita dalla funzione RtwqLockSharedWorkQueue .
  • Coda seriale creata dalla funzione RtwqAllocateSerialWorkQueue .

[out] workQueueIdOut

Riceve un identificatore per la nuova coda di lavoro seriale. Usare questo identificatore durante l'accodamento degli elementi di lavoro.

Valore restituito

Questa funzione può restituire uno di questi valori.

Codice restituito Descrizione
S_OK
Funzione completata.
E_FAIL
L'applicazione ha superato il numero massimo di code di lavoro.
RTWQ_E_SHUTDOWN
L'applicazione non ha chiamato RtwqStartup o l'applicazione ha già chiamato RtwqShutdown.

Commenti

Al termine dell'uso della coda di lavoro, chiamare RtwqUnlockWorkQueue.

Le code multithreading usano un pool di thread, che può ridurre il numero totale di thread nella pipeline. Tuttavia, non serializzano gli elementi di lavoro. Una coda di lavoro seriale consente all'applicazione di ottenere i vantaggi del pool di thread, senza dover eseguire la serializzazione manuale dei propri elementi di lavoro.

Requisiti

Requisito Valore
Client minimo supportato Windows 8.1 [solo app desktop]
Server minimo supportato Windows Server 2012 R2 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione rtworkq.h
Libreria Rtworkq.lib
DLL RTWorkQ.dll

Vedi anche

RTWQ_WORKQUEUE_TYPE