在标准的MFC中使用的线程API是“AfxBeginThread“。下面是我对多线程的一个操作。因为查了好多资料后,将他们的内容进行整合。我觉得网上并没有给出一个特别清晰的思路。
思路:
1:创建线程;2:创建线程调用的函数;3:结束线程
第一步:创建线程
CWinThread * m_pThread; //线程
m_pThread = nullptr;
m_pThread = AfxBeginThread(LoadNlpDict,this);
第二步:创建线程调用的函数
再次特别声明,该函数必须是个静态或者是不属于该类的函数
UINT LoadInfo(LPVOID lpParam);
UINT LoadNlpDict(LPVOID lpParam)
{
RootDict();//自己内部调用的API
CDictDataStroed *gDictData = (CDictDataStroed*)lpParam; //调用的类的定义
//获取该线程的结束码。
DWORD dwExitCode_dict = 0;
bool flag1 = GetExitCodeThread(gDictData->m_pThread->m_hThread , &dwExitCode_dict);
OutputDebugString(L"词典 加载完成\r\n");
//3:结束线程
AfxEndThread(dwExitCode_dict);
return 1 ;
}
当有多个线程的时候,和这个的方式是一样的。我已经测试过,可以运行。