Share via


非同期呼び出しでのイベントの使用

[このページに関連付けられている機能である Windows Media Format 11 SDK は、従来の機能です。 ソース リーダーシンク ライターに置き換わりました。 ソース リーダーシンク ライターは、Windows 10とWindows 11用に最適化されています。 Microsoft では、可能であれば、新しいコードで Windows Media Format 11 SDK ではなくソース リーダーシンク ライターを使用することを強くお勧めします。 Microsoft は、レガシ API を使用する既存のコードを、可能であれば新しい API を使用するように書き換えるよう提案しています。]

多くの場合、非同期で呼び出されるメソッドを使用する場合は、メソッドの処理が完了するまでアプリケーションの処理を停止する必要があります。 この状況を処理する任意の手法を実装できます。 このセクションでは、イベントを使用して呼び出し元スレッドの非同期呼び出しを待機する方法について説明します。 この手法は、Windows Media Format SDK でよく使用され、一部のサンプル アプリケーションで示されています。

次の一覧は、非同期呼び出しを待機するイベントの使用をまとめたものです。

  1. プラットフォーム SDK の CreateEvent 関数を呼び出して、アプリケーションで使用するイベントを作成します。
  2. アプリケーションに適切なコールバックを実装する場合は、待機する必要があるメッセージをトラップします。 目的のメッセージのメッセージ処理ロジックで、Platform SDK の SetEvent 関数を呼び出してイベントを通知します。
  3. アプリケーションで非同期イベントの呼び出しが行われた後、Platform SDK の WaitForSingleObject 関数を呼び出してイベントが通知されるまで待ちます。 Windows アプリケーションを設計する場合は、Windows メッセージをチェックするループを作成し、短い待機時間で WaitForSingleObject の呼び出しをループに含める必要があります。

コールバック メソッドの使用