求助: 初始化MFC的CThreadEx类时是不是先运行 InitInstance() 然后构造函数 然后run() 初始化MFC的CThreadEx类时是不是先运行 InitInstance() 然后构造函数 然后run() ?谢谢了? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 先初始化CWinThread的派生类,调用派生类的构造函数。然后通过CWinThread的CreateThread函数创建一个线程,线程函数为_AfxThreadEntry以下是_AfxTheadExtry的代码 // first -- check for simple worker thread DWORD nResult = 0; if (pThread->m_pfnThreadProc != NULL) { nResult = (*pThread->m_pfnThreadProc)(pThread->m_pThreadParams); ASSERT_VALID(pThread); } // else -- check for thread with message loop else if (!pThread->InitInstance()) { ASSERT_VALID(pThread); nResult = pThread->ExitInstance(); } else { // will stop after PostQuitMessage called ASSERT_VALID(pThread); nResult = pThread->Run(); }有上述代码可知,首先检测有没有自定义的线程函数,如有则调用线程函数,如没有自定义线程函数则调用InitInstance函数。如果InitInstance函数返回FALSE,则继续调用Run函数。 MFC中如何获得另一个窗口中的树形控件的内容 关于对话框背景透明的尝试 关于killtimer函数不能写在析构函数的问题 关于char的问题,分数全部给第一个解决问题的能人! WinExec 关于在程序运行中动态改变菜单的问题(这几天关于菜单的问题特多,哈哈) 那里有用vc做的用于播放avi文件的原代码或书籍! 高分请问:如何制作Win98下的半透明窗口。 visual studio 2010 installer 制作安装包不能更新以前文件? 请教DIB的句柄和指针的转换 步行上下班快有一年了! vc用POST向WEB服务器传文件,如何编码?
然后通过CWinThread的CreateThread函数创建一个线程,线程函数为_AfxThreadEntry
以下是_AfxTheadExtry的代码
// first -- check for simple worker thread
DWORD nResult = 0;
if (pThread->m_pfnThreadProc != NULL)
{
nResult = (*pThread->m_pfnThreadProc)(pThread->m_pThreadParams);
ASSERT_VALID(pThread);
}
// else -- check for thread with message loop
else if (!pThread->InitInstance())
{
ASSERT_VALID(pThread);
nResult = pThread->ExitInstance();
}
else
{
// will stop after PostQuitMessage called
ASSERT_VALID(pThread);
nResult = pThread->Run();
}
有上述代码可知,首先检测有没有自定义的线程函数,如有则调用线程函数,
如没有自定义线程函数则调用InitInstance函数。如果InitInstance函数返回FALSE,则继续调用Run函数。