次の方法で共有


MFPutWaitingWorkItem 関数 (mfapi.h)

イベントが通知されるのを待つ作業項目をキューに入れます。

構文

HRESULT MFPutWaitingWorkItem(
  [in]  HANDLE         hEvent,
  [in]  LONG           Priority,
  [in]  IMFAsyncResult *pResult,
  [out] MFWORKITEM_KEY *pKey
);

パラメーター

[in] hEvent

イベント オブジェクトへのハンドル。 イベント オブジェクトを作成するには、 CreateEvent または CreateEventEx を呼び出 します

[in] Priority

作業項目の優先度。 作業項目は優先度順に実行されます。

[in] pResult

非同期結果オブジェクトの IMFAsyncResult インターフェイスへのポインター。 結果オブジェクトを作成するには、 MFCreateAsyncResult を呼び出します。

[out] pKey

待機を取り消すために使用できるキーを受け取ります。 待機を取り消すには、 MFCancelWorkItem を 呼び出し、 Key パラメーターに このキーを渡します。

このパラメーターは、NULL でもかまいません。

戻り値

この関数が成功すると、 S_OKが返されます。 そうでない場合は、HRESULT エラー コードを返します。

注釈

この関数を使用すると、コンポーネントは現在のスレッドをブロックせずにイベントを待機できます。

関数は、指定された作業キューに作業項目を配置します。 この作業項目は、 hEvent で指定されたイベントが通知されるまで待機します。 イベントが通知されると、作業項目によってコールバックが呼び出されます。 (コールバックは、 pResult で指定された結果オブジェクトに含まれています。詳細については、「 MFCreateAsyncResult)」を参照してください。

作業項目は、コールバックの IMFAsyncCallback::GetParameters メソッドによって作業キューにディスパッチされます。 作業キューには、次のいずれかを指定できます。

  • 既定の作業キュー (MFASYNC_CALLBACK_QUEUE_STANDARD)。
  • プラットフォーム のマルチスレッド キュー (MFASYNC_CALLBACK_QUEUE_MULTITHREADED)。
  • MFLockSharedWorkQueue 関数によって返されるマルチスレッド キュー。
  • MFAllocateSerialWorkQueue 関数によって作成されたシリアル キュー。
MFASYNC_CALLBACK_QUEUE_IO、MFASYNC_CALLBACK_QUEUE_LONG_FUNCTION、MFASYNC_CALLBACK_QUEUE_RT、またはMFASYNC_CALLBACK_QUEUE_TIMERのいずれかの作業キューは使用しないでください。

要件

要件
サポートされている最小のクライアント Windows 8 [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows Server 2012 [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー mfapi.h
[DLL] Mfplat.dll

こちらもご覧ください

メディア ファンデーション機能

作業キューとスレッド処理の機能強化

作業キュー