Класс 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 | Обрабатывает запросы. Это чистая виртуальная функция-член. |