RtwqAllocateSerialWorkQueue 関数 (rtworkq.h)
作業項目のシリアル化が保証されている別の作業キューの上に仮想作業キューを作成します。 シリアル作業キューは、既存のマルチスレッド作業キューをラップします。 シリアル作業キューでは、先入れ先出し (FIFO) の実行順序が適用されます。
構文
HRESULT RtwqAllocateSerialWorkQueue(
[in] DWORD workQueueIdIn,
[out] DWORD *workQueueIdOut
);
パラメーター
[in] workQueueIdIn
既存の作業キューの識別子。 これは、マルチスレッド キューまたは別のシリアル作業キューである必要があります。 次のいずれかを使用できます。
- 既定の作業キュー (RTWQ_STANDARD_WORKQUEUE)。 「RTWQ_WORKQUEUE_TYPE」を参照してください。
- プラットフォーム のマルチスレッド キュー (RTWQ_MULTITHREADED_WORKQUEUE)。 「RTWQ_WORKQUEUE_TYPE」を参照してください。
- RtwqLockSharedWorkQueue 関数によって返されるマルチスレッド キュー。
- RtwqAllocateSerialWorkQueue 関数によって作成されたシリアル キュー。
[out] workQueueIdOut
新しいシリアル作業キューの識別子を受け取ります。 この識別子は、作業項目をキューに入れたときに使用します。
戻り値
この関数は、これらの値のいずれかを返すことができます。
リターン コード | 説明 |
---|---|
|
関数が正常に実行されました。 |
|
アプリケーションが作業キューの最大数を超えました。 |
|
アプリケーションが RtwqStartup を呼び出さなかったか、アプリケーションで RtwqShutdown が既に呼び出されています。 |
注釈
作業キューの使用が完了したら、 RtwqUnlockWorkQueue を呼び出します。
マルチスレッド キューはスレッド プールを使用します。これにより、パイプライン内のスレッドの合計数を減らすことができます。 ただし、作業項目はシリアル化されません。 シリアル作業キューを使用すると、アプリケーションは、独自の作業項目の手動シリアル化を実行することなく、スレッド プールの利点を得ることができます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 8.1 [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2012 R2 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | rtworkq.h |
Library | Rtworkq.lib |
[DLL] | RTWorkQ.dll |