Compartir a través de


Función RtwqAllocateSerialWorkQueue (rtworkq.h)

Crea una cola de trabajo virtual sobre otra cola de trabajo que se garantiza para serializar elementos de trabajo. La cola de trabajo serie encapsula una cola de trabajo multiproceso existente. La cola de trabajo serie aplica un orden de ejecución primero en salir (FIFO).

Sintaxis

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

Parámetros

[in] workQueueIdIn

Identificador de una cola de trabajo existente. Debe ser una cola multiproceso u otra cola de trabajo serie. Se puede usar cualquiera de las siguientes opciones:

  • Cola de trabajo predeterminada (RTWQ_STANDARD_WORKQUEUE). Consulte RTWQ_WORKQUEUE_TYPE.
  • Cola multiproceso (RTWQ_MULTITHREADED_WORKQUEUE) de la plataforma. Consulte RTWQ_WORKQUEUE_TYPE.
  • Una cola multiproceso devuelta por la función RtwqLockSharedWorkQueue .
  • Una cola serie creada por la función RtwqAllocateSerialWorkQueue .

[out] workQueueIdOut

Recibe un identificador para la nueva cola de trabajo serie. Use este identificador al poner en cola elementos de trabajo.

Valor devuelto

Esta función puede devolver uno de estos valores.

Código devuelto Descripción
S_OK
La función se ha realizado correctamente.
E_FAIL
La aplicación superó el número máximo de colas de trabajo.
RTWQ_E_SHUTDOWN
La aplicación no llamó a RtwqStartup o la aplicación ya ha llamado RtwqShutdown.

Comentarios

Cuando haya terminado de usar la cola de trabajo, llame a RtwqUnlockWorkQueue.

Las colas multiproceso usan un grupo de subprocesos, lo que puede reducir el número total de subprocesos de la canalización. Sin embargo, no serializan elementos de trabajo. Una cola de trabajo serie permite a la aplicación obtener las ventajas del grupo de subprocesos, sin necesidad de realizar la serialización manual de sus propios elementos de trabajo.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8.1 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2012 R2 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado rtworkq.h
Library Rtworkq.lib
Archivo DLL RTWorkQ.dll

Consulte también

RTWQ_WORKQUEUE_TYPE