次の方法で共有


CMsgThread.WaitForThreadExit メソッド

[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayerIMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayerIMFMediaEngineAudio/Video Capture を使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]

スレッドが終了するまでブロックします。

構文

BOOL WaitForThreadExit(
   LPDWORD lpdwExitCode
);

パラメーター

lpdwExitCode

スレッドによって返される終了コードへのポインター。

戻り値

TRUE または FALSE を返します。この意味は、オーバーライドされた CMsgThread::ThreadMessageProc メンバー関数と呼び出し元のメンバー関数を提供するクラスによって決定されます。

解説

派生クラスの破棄を完了する前に、ワーカー スレッドが完全に終了していることを確認します。そうしないと、プロセスのアドレス空間からダイナミック リンク ライブラリ (DLL) がアンロードされた後も、スレッドが実行される可能性があります。 終了する唯一の命令が単一の戻り命令である場合でも、例外が発生します。 スレッドが終了したことを確認する唯一の信頼できる方法は、(CMsgThread::P utThreadMsg メンバー関数に送信されたプライベートにネゴシエートされた CMsg オブジェクトを使用して) 終了するようにスレッドに通知してから、このメンバー関数を呼び出す方法です。 これは、派生クラスのデストラクターで行う必要があります。

要件

要件
ヘッダー
Msgthrd.h (include Streams.h)
ライブラリ
Strmbase.lib (小売ビルド);
Strmbasd.lib (デバッグ ビルド)

関連項目

CMsgThread クラス