用AfxBeginThread创建线程
时间: 2024-06-13 07:06:06 浏览: 9
以下是使用AfxBeginThread创建线程的示例代码:
1. 创建用户界面线程
```cpp
// 定义线程类
class CMyThread : public CWinThread
{
public:
virtual BOOL InitInstance();
virtual int ExitInstance();
afx_msg void OnThreadMessage(WPARAM wParam, LPARAM lParam);
DECLARE_MESSAGE_MAP()
};
// 实现线程类
BOOL CMyThread::InitInstance()
{
// 在此添加初始化代码
return TRUE;
}
int CMyThread::ExitInstance()
{
// 在此添加清理代码
return CWinThread::ExitInstance();
}
BEGIN_MESSAGE_MAP(CMyThread, CWinThread)
ON_THREAD_MESSAGE(WM_MY_THREAD_MESSAGE, OnThreadMessage)
END_MESSAGE_MAP()
void CMyThread::OnThreadMessage(WPARAM wParam, LPARAM lParam)
{
// 在此添加消息处理程序代码
}
// 创建线程
CMyThread* pThread = (CMyThread*)AfxBeginThread(RUNTIME_CLASS(CMyThread), THREAD_PRIORITY_NORMAL, 0, CREATE_SUSPENDED);
pThread->m_bAutoDelete = FALSE;
pThread->ResumeThread();
```
2. 创建工作者线程
```cpp
// 工作者线程的控制函数
UINT MyWorkerThread(LPVOID pParam)
{
// 在此添加线程代码
return 0;
}
// 创建线程
CWinThread* pThread = AfxBeginThread(MyWorkerThread, NULL, THREAD_PRIORITY_NORMAL, 0, 0, NULL);
```