Freigeben über


RtwqAllocateSerialWorkQueue-Funktion (rtworkq.h)

Erstellt eine virtuelle Arbeitswarteschlange über einer anderen Arbeitswarteschlange, die garantiert Arbeitselemente serialisiert. Die serielle Arbeitswarteschlange umschließt eine vorhandene Multithreadarbeitswarteschlange. Die serielle Arbeitswarteschlange erzwingt eine FIFO-Ausführungsreihenfolge (First-In, First-Out).

Syntax

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

Parameter

[in] workQueueIdIn

Der Bezeichner einer vorhandenen Arbeitswarteschlange. Dies muss entweder eine Multithreadwarteschlange oder eine andere serielle Arbeitswarteschlange sein. Eine der folgenden Optionen kann verwendet werden:

  • Die Standardarbeitswarteschlange (RTWQ_STANDARD_WORKQUEUE). Siehe RTWQ_WORKQUEUE_TYPE.
  • Die Plattform-Multithreadwarteschlange (RTWQ_MULTITHREADED_WORKQUEUE). Siehe RTWQ_WORKQUEUE_TYPE.
  • Eine Multithreadwarteschlange, die von der RtwqLockSharedWorkQueue-Funktion zurückgegeben wird.
  • Eine serielle Warteschlange, die von der RtwqAllocateSerialWorkQueue-Funktion erstellt wird.

[out] workQueueIdOut

Empfängt einen Bezeichner für die neue serielle Arbeitswarteschlange. Verwenden Sie diesen Bezeichner beim Anstehen von Arbeitselementen.

Rückgabewert

Diese Funktion kann einen dieser Werte zurückgeben.

Rückgabecode BESCHREIBUNG
S_OK
Die Funktion wurde erfolgreich ausgeführt.
E_FAIL
Die Anwendung hat die maximale Anzahl von Arbeitswarteschlangen überschritten.
RTWQ_E_SHUTDOWN
Die Anwendung hat RtwqStartup nicht aufgerufen, oder die Anwendung hat bereits RtwqShutdown aufgerufen.

Hinweise

Wenn Sie mit der Arbeitswarteschlange fertig sind, rufen Sie RtwqUnlockWorkQueue auf.

Multithread-Warteschlangen verwenden einen Threadpool, der die Gesamtzahl der Threads in der Pipeline reduzieren kann. Arbeitselemente werden jedoch nicht serialisiert. Eine serielle Arbeitswarteschlange ermöglicht es der Anwendung, die Vorteile des Threadpools zu nutzen, ohne dass die eigenen Arbeitselemente manuell serialisiert werden müssen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8.1 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2012 R2 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile rtworkq.h
Bibliothek Rtworkq.lib
DLL RTWorkQ.dll

Weitere Informationen

RTWQ_WORKQUEUE_TYPE