Метод 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 ), а затем вызвать эту функцию-член. Это следует сделать в деструкторе для производного класса.
Требования
Требование | Значение |
---|---|
Заголовок |
|
Библиотека |
|