mfc下AfxBeginThread创建线程

时间:2021-03-17 18:26:38

1. .h文件下声明

static UINT WINAPI MyInsertList(LPVOID lpParameter);//必须为此格式

2.创建线程函数m_param为结构体,如果需要传入多个参数需要定义结构体

BOOL CreateInsetListThread(const CString& FilePath ,const CString & DiskPath)
{

m_param.hWnd = this->m_hWnd;
m_param.FilePath = FilePath;
m_param.DiskPath = DiskPath;

m_pThread = AfxBeginThread(( AFX_THREADPROC )MyInsertList,&m_param,THREAD_PRIORITY_NORMAL, 0, CREATE_SUSPENDED);//创建线程
if(!m_pThread)//如果创建失败则返回
return FALSE;
m_pThread->m_bAutoDelete = FALSE;
m_pThread->ResumeThread();

}

3.线程函数的实现

UINT WINAPI MyInsertList(LPVOID lpParameter)

UINT WINAPI MyInsertList(LPVOID lpParameter)
{

DiskThreadData * param = reinterpret_cast<DiskThreadData *>(lpParameter);//将lpParameter转换成结构体形式
HWND hDesWnd = param->hWnd;//获取句柄
//实现方式
}
4.补充WaitForSingleObject(hThread,INFINITE);//等待指定线程关闭,INFINITE为一直等待