次の方法で共有


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

新しいシリアル作業キューの識別子を受け取ります。 この識別子は、作業項目をキューに入れたときに使用します。

戻り値

この関数は、これらの値のいずれかを返すことができます。

リターン コード 説明
S_OK
関数が正常に実行されました。
E_FAIL
アプリケーションが作業キューの最大数を超えました。
RTWQ_E_SHUTDOWN
アプリケーションが RtwqStartup を呼び出さなかったか、アプリケーションで RtwqShutdown が既に呼び出されています。

注釈

作業キューの使用が完了したら、 RtwqUnlockWorkQueue を呼び出します。

マルチスレッド キューはスレッド プールを使用します。これにより、パイプライン内のスレッドの合計数を減らすことができます。 ただし、作業項目はシリアル化されません。 シリアル作業キューを使用すると、アプリケーションは、独自の作業項目の手動シリアル化を実行することなく、スレッド プールの利点を得ることができます。

要件

要件
サポートされている最小のクライアント Windows 8.1 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2012 R2 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー rtworkq.h
Library Rtworkq.lib
[DLL] RTWorkQ.dll

こちらもご覧ください

RTWQ_WORKQUEUE_TYPE