Share via


CMsgThread Class

This class is a worker thread class that queues requests to the queuing thread for completion asynchronously. To use this class, derive your class from it and override the CMsgThread::ThreadMessageProc member function. The ThreadMessageProc member function carries out each request. Your client functions and the ThreadMessageProc member function must share a common definition of the parameters in the CMsg object.

A negotiated mechanism tells the worker thread to exit. Typically, this will be one value of the CMsg class's uMsg message code.

It is a good idea to send this message from the destructor of your derived class, and call the CMsgThread::WaitForThreadExit member function before completing the destruction of the derived class.

Protected Data Members

Member Description
m_hSem Indicates a handle used for signaling.
m_Lock Protects access to lists.
m_lWaiting Indicates waiting for a free thread.
m_ThreadQueue Overrides the CMsgThread::GetThreadMsg member function and blocks on things other than this queue.

Member Functions

Member function Description
CMsgThread Constructs a CMsgThread object.
CreateThread Creates a thread.
GetThreadHandle Returns the thread handle.
GetThreadID Returns the identifier of the thread.
GetThreadPriority Retrieves the current thread priority.
PutThreadMsg Queues a request for execution by the worker thread.
ResumeThread Continues the operation of the worker thread.
SetThreadPriority Sets the priority of the thread to a new value.
SuspendThread Suspends the operation of a running thread.
WaitForThreadExit Blocks until the thread has exited after a call to the CMsgThread::SuspendThread member function.

Overrideable Member Functions

Member function Description
GetThreadMsg Retrieves a queued CMsg object containing a request.
OnThreadInit Provides initialization on a thread.
ThreadMessageProc Processes requests. This is a pure virtual member function.

Requirements

DirectShow applications and DirectShow filters have different include file and link library requirements. See Setting Up the Build Environment for more information.

OS Versions: Windows CE 2.12 and later. Version 2.12 requires DXPAK 1.0 or later.
Header:

Last updated on Wednesday, April 13, 2005

© 2005 Microsoft Corporation. All rights reserved.