DirectShow DirectShow 레퍼런스 DirectShow base class base class 레퍼런스 CMsgThread   [목차열람] [주소복사] [슬롯비우기]
CMsgThread 클래스
 
Microsoft DirectX 9.0

CMsgThread 클래스

CMsgThread 클래스는, 요구를 비동기적으로 완료하기 위해서, 큐를 처리하는 thread의 큐에 넣는 워커 thread 클래스이다. 이 클래스를 사용하려면 , 이 클래스에서 클래스를 파생시켜,CMsgThread::ThreadMessageProc 멤버 함수를 오버라이드(override) 한다. ThreadMessageProc 멤버 함수는 각 요구를 실행한다. 클라이언트 함수와 ThreadMessageProc 멤버 함수는,CMsg 개체의 파라미터에 대해 공통의 정의를 공유해야 한다.

네고시에이트메카니즘에 의해, 워커 thread에 종료가 지시받는다. 보통, 이것은 CMsg 클래스의 uMsg 메시지 코드의 값이다.

상속 클래스의 소멸자로부터 이 메시지를 송신해, 상속 클래스의 파기가 완료하기 전에 CMsgThread::WaitForThreadExit 멤버 함수를 호출하는 것을 추천 한다.

프로텍트 데이터 멤버

m_hSem 통지에 사용하는 핸들을 나타낸다.
m_Lock 리스트에의 액세스를 보호한다.
m_lWaiting 빈thread를 대기하는 것을 나타낸다.
m_ThreadQueue CMsgThread::GetThreadMsg 멤버 함수를 오버라이드(override) 해, 이 큐 이외를 블록 한다.

멤버 함수

CMsgThread CMsgThread 개체를 생성 한다.
CreateThread thread를 생성 한다.
GetThreadHandle thread 핸들을 얻어온다.
GetThreadID thread의 식별자를 얻어온다.
GetThreadPriority 현재의 thread의 우선도를 얻어온다.
PutThreadMsg 워커 thread에 의해 실행되는 요구를 큐에 넣는다.
ResumeThread 워커 thread의 처리를 속행한다.
SetThreadPriority thread의 우선도를 새로운 값으로 설정한다.
SuspendThread 실행중의 thread의 처리를 포즈 한다.
WaitForThreadExit CMsgThread::SuspendThread 멤버 함수를 호출한 후, thread가 종료할 때까지 블록 한다.

오버라이드(override) 가능한 멤버 함수

GetThreadMsg 요구를 저장 하는 큐에 넣어진 CMsg 개체를 얻어온다.
OnThreadInit thread에 대한 초기화를 제공한다.
ThreadMessageProc 요구를 처리한다. 이것은 순수 가상 멤버 함수이다.

↑TOP