Поделиться через


Метод CMsgThread.WaitForThreadExit

[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код использовал MediaPlayer, IMFMediaEngine и аудио- и видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие API, чтобы по возможности использовать новые API.]

Блокируется, пока поток не завершит работу.

Синтаксис

BOOL WaitForThreadExit(
   LPDWORD lpdwExitCode
);

Параметры

lpdwExitCode

Указатель на код выхода, возвращенный потоком.

Возвращаемое значение

Возвращает значение TRUE или FALSE, значение которого определяется классом, предоставляющим переопределенную функцию-член CMsgThread::ThreadMessageProc и вызывающую функцию-член.

Комментарии

Убедитесь, что рабочий поток полностью завершен, прежде чем завершить уничтожение производного класса; В противном случае поток может по-прежнему выполняться после выгрузки динамической библиотеки (DLL) из адресного пространства процесса. Даже если для выхода остается только инструкция с одним возвратом, это приведет к исключению. Единственный надежный способ убедиться, что поток завершился, — сообщить потоку о выходе (с помощью частного объекта CMsg, отправленного в функцию-член CMsgThread::P utThreadMsg ), а затем вызвать эту функцию-член. Это следует сделать в деструкторе для производного класса.

Требования

Требование Значение
Заголовок
Msgthrd.h (включая Streams.h)
Библиотека
Strmbase.lib (розничные сборки);
Strmbasd.lib (отладочные сборки)

См. также раздел

Класс CMsgThread