CMsgThread 类

该类是一个工作线程类,用于 CMsgThread 将请求排队到队列线程以异步方式完成。 若要使用此类,请从中派生类并重写 CMsgThread::ThreadMessageProc 成员函数。 ThreadMessageProc 成员函数执行每个请求。 客户端函数和 ThreadMessageProc 成员函数必须共享 CMsg 对象中参数的通用定义。

协商机制告知辅助角色线程退出。 通常,这是 CMsg 类的 uMsg 消息代码的一个值。

最好从派生类的析构函数发送此消息,并在完成派生类的销毁之前调用 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 处理请求。 这是纯虚拟成员函数。