CWinThread类封装了对
线程的操作,一个CWinThread对象代表在应用程序中一个线程的执行。在MFC应用程序中,主执行线程是CWinThread派生类CWinApp的派生类对象。由CWinApp类派生的新类都是用户界面线程。
成员变量
CWinThread类的成员变量有以下5个:
m_bAutoDelete:线程终止时是否自动销毁。
m_hTread:当前线程的句柄。
m_nTreadID:当前线程的标识。
m_pActiveWnd:激活窗口指针。
成员函数
CWinThread类的常用成员函数如下:
1、调用CreateTread函数用于创建一个新线程,函数声明如下:
BOOL CreateTread
{
DWORD dwCreateFlags=0, //线程创建标志
UINT nStackSize=0, //线程
堆栈大小
LPSECURITY_ATTRIBUTES lpSecurityAttrs=NULL //线程的安全属性
};
2、调用GetTreadPriority函数获取线程的优先级,函数声明如下:
int GetTreadPriority();
线程的优先级取值如下:
THREAD_PRIORITY_TIME_CRITICAL:实时优先级
THREAD_PRIORITY_HIGHEST:比普通优先级高两个单位
THREAD_PRIORITY_ABOVE_NORMAL:比普通优先级高一个单位
THREAD_PRIORITY_NORMAL:普通优先级
THREAD_PRIORITY_BELOW_NORMAL:比普通优先级低一个单位
THREAD_PRIORITY_LOWEST比普通优先级低两个单位
THREAD_PRIORITY_IDLE:空闲优先级
3、调用
SetThreadPriority函数用于设置线程的优先级,函数声明如下:
int nPriority; //优先级
);
4、调用PostThreadMessage函数用于向另一个CWinThread对象发送信息,函数声明如下:
BOOL PostThreadMessage(
UINT message, //用户定义消息标识
WPARAM wParam, //消息的第一个参数
LPARAM lParam //消息的第二个参数
);
5、调用SuspendThread函数用于将线程的挂起计数加1,当线程的挂起计数大于0时,该线程将暂停执行,称之为
挂起状态。函数声明如下:
DWORD SuspendThread();
6、调用ResumeThread函数用于将生成的挂起计数减1,当线程的挂起计数减少到0时,恢复线程的执行。函数声明如下:
DWORD ResumeThread();
重载函数
1、
重载InitInstance函数用与执行线程实例的初始化工作。函数声明如下:
virtual BOOL InitInstance();
2、
重载ExitInstance函数用于执行清理工作,函数声明如下:
virtual int ExitInstance();
3、
重载OnIdle函数用于执行线程空闲处理工作,函数声明如下:
virtual BOOL OnIdle(
LONG ICount //计数器
);