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


Класс CMsgThread

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

Класс CMsgThread — это класс рабочего потока, который асинхронно помещает в очередь запросы к потоку очередей для завершения. Чтобы использовать этот класс, наследуйте класс от него и переопределите функцию-член CMsgThread::ThreadMessageProc . Функция-член ThreadMessageProc выполняет каждый запрос. Клиентские функции и функция-член ThreadMessageProc должны совместно использовать общее определение параметров в объекте CMsg .

Согласованный механизм сообщает рабочему потоку о выходе. Как правило, это одно значение кода сообщения uMsg класса CMsg.

Рекомендуется отправить это сообщение из деструктора производного класса и вызвать функцию-член CMsgThread::WaitForThreadExit , прежде чем завершить уничтожение производного класса.

Защищенные члены данных Описание
m_hSem Указывает дескриптор, используемый для сигнализации.
m_Lock Защищает доступ к спискам.
m_lWaiting Указывает на ожидание свободного потока.
m_ThreadQueue Переопределяет функцию-член CMsgThread::GetThreadMsg и блокирует объекты, отличные от этой очереди.
Функции элементов Описание
CMsgThread Создает объект CMsgThread .
CreateThread Создает поток.
GetThreadHandle Извлекает дескриптор потока.
GetThreadID Извлекает идентификатор потока.
GetThreadPriority Извлекает приоритет текущего потока.
PutThreadMsg Помещает в очередь запрос на выполнение рабочим потоком.
ResumeThread Продолжает работу рабочего потока.
SetThreadPriority Задает приоритет потока в качестве нового значения.
SuspendThread Приостанавливает работу выполняющегося потока.
WaitForThreadExit Блокируется, пока поток не завершит работу после вызова функции-члена CMsgThread::SuspendThread .
Переопределимые функции-члены Описание
GetThreadMsg Извлекает объект CMsg в очереди, содержащий запрос.
OnThreadInit Обеспечивает инициализацию в потоке.
ThreadMessageProc Обрабатывает запросы. Это чистая виртуальная функция-член.