Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
[Функция, связанная с этой страницей 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 | Обрабатывает запросы. Это чистая виртуальная функция-член. |