CMsgThread 클래스

[이 페이지와 연결된 기능인 DirectShow는 레거시 기능입니다. MediaPlayer, IMFMediaEngineMedia Foundation의 오디오/비디오 캡처로 대체되었습니다. 이러한 기능은 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드에서 DirectShow 대신 MediaPlayer, IMFMediaEngine오디오/비디오 캡처를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]

클래스는 CMsgThread 비동기적으로 완료를 위해 큐 스레드에 요청을 큐에 대기하는 작업자 스레드 클래스입니다. 이 클래스를 사용하려면 클래스를 파생시키고 CMsgThread::ThreadMessageProc 멤버 함수를 재정의합니다. ThreadMessageProc 멤버 함수는 각 요청을 수행합니다. 클라이언트 함수와 ThreadMessageProc 멤버 함수는 CMsg 개체의 매개 변수에 대한 일반적인 정의를 공유해야 합니다.

협상된 메커니즘은 작업자 스레드에 종료를 지시합니다. 일반적으로 CMsg 클래스의 uMsg 메시지 코드 값 중 하나입니다.

파생 클래스의 소멸자에서 이 메시지를 보내고 파생 클래스의 소멸을 완료하기 전에 CMsgThread::WaitForThreadExit 멤버 함수를 호출하는 것이 좋습니다.

보호된 데이터 멤버 Description
m_hSem 신호에 사용되는 핸들을 나타냅니다.
m_Lock 목록에 대한 액세스를 보호합니다.
m_lWaiting 자유 스레드 대기 중임을 나타냅니다.
m_ThreadQueue CMsgThread::GetThreadMsg 멤버 함수를 재정의하고 이 큐 이외의 항목을 차단합니다.
멤버 함수 Description
CMsgThread CMsgThread 개체를 생성합니다.
CreateThread 스레드를 만듭니다.
GetThreadHandle 스레드 핸들을 검색합니다.
GetThreadID 스레드의 식별자를 검색합니다.
GetThreadPriority 현재 스레드 우선 순위를 검색합니다.
PutThreadMsg 작업자 스레드의 실행 요청을 큐에 대기합니다.
ResumeThread 작업자 스레드의 작업을 계속합니다.
SetThreadPriority 스레드의 우선 순위를 새 값으로 설정합니다.
SuspendThread 실행 중인 스레드의 작업을 일시 중단합니다.
WaitForThreadExit CMsgThread::SuspendThread 멤버 함수를 호출한 후 스레드가 종료될 때까지 차단합니다.
재정의 가능한 멤버 함수 Description
GetThreadMsg 요청을 포함하는 큐에 대기 중인 CMsg 개체를 검색합니다.
OnThreadInit 스레드에서 초기화를 제공합니다.
ThreadMessageProc 요청을 처리합니다. 순수 가상 멤버 함수입니다.