Compartilhar via


Função RtwqAllocateSerialWorkQueue (rtworkq.h)

Cria uma fila de trabalho virtual sobre outra fila de trabalho que tem a garantia de serializar itens de trabalho. A fila de trabalho serial encapsula uma fila de trabalho multithread existente. A fila de trabalho serial impõe uma ordem de execução FIFO (primeiro a entrar, primeiro a sair).

Sintaxe

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

Parâmetros

[in] workQueueIdIn

O identificador de uma fila de trabalho existente. Deve ser uma fila multithread ou outra fila de trabalho serial. Qualquer uma das seguintes opções pode ser usada:

  • A fila de trabalho padrão (RTWQ_STANDARD_WORKQUEUE). Confira RTWQ_WORKQUEUE_TYPE.
  • A fila multithread da plataforma (RTWQ_MULTITHREADED_WORKQUEUE). Confira RTWQ_WORKQUEUE_TYPE.
  • Uma fila multithread retornada pela função RtwqLockSharedWorkQueue .
  • Uma fila serial criada pela função RtwqAllocateSerialWorkQueue .

[out] workQueueIdOut

Recebe um identificador para a nova fila de trabalho serial. Use esse identificador ao enfileirar itens de trabalho.

Retornar valor

Essa função pode retornar um desses valores.

Código de retorno Descrição
S_OK
A função foi bem-sucedida.
E_FAIL
O aplicativo excedeu o número máximo de filas de trabalho.
RTWQ_E_SHUTDOWN
O aplicativo não chamou RtwqStartup ou o aplicativo já chamou RtwqShutdown.

Comentários

Quando terminar de usar a fila de trabalho, chame RtwqUnlockWorkQueue.

As filas multithreaded usam um pool de threads, o que pode reduzir o número total de threads no pipeline. No entanto, eles não serializam itens de trabalho. Uma fila de trabalho serial permite que o aplicativo obtenha os benefícios do pool de threads, sem a necessidade de executar a serialização manual de seus próprios itens de trabalho.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 8.1 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2012 R2 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho rtworkq.h
Biblioteca Rtworkq.lib
DLL RTWorkQ.dll

Confira também

RTWQ_WORKQUEUE_TYPE