AfxBeginThread启动线程问题

JxSimons 2014-01-24 02:21:43

在头文件(.h)中申明线程
UINT ThreadImportTD(LPVOID lpParam);
class CDlgImportRWKD : public CDialog

......

在实现文件(.cpp)中启动线程
//1.
void CDlgImportRWKD::OnBtnImport() //相应按钮时启动线程
{
AfxBeginThread(ThreadImportTD,this);
//this 为对话框指针,因为需要调用其中的函数和访问其成员变量
}


//2
UINT ThreadImportTD(LPVOID lpParam)
{
CDlgImportRWKD *pDlg = (CDlgImportRWKD*)lpParam;

if(pDlg->tEnd[1] < pDlg->tEnd[4])
pDlg->ImportTodayDK();
pDlg->tEnd[1] = gfreadRWTime(FALSE);
pDlg->m_CTime_RWKDDD.SetWindowText("DD:" + gFormatTime(pDlg->tEnd[1]));
return 1;
}


就上述代码,不知怎么,无法启动线程,断点调试也无法进去:
在AfxBeginThread(ThreadImportTD,this);设置断点,能到该位置,再往下执行时,就没任何反应,请大家帮我看看,谢谢。
(在release下可以启动该线程,完成需要做的事情,而且原来也写过类似的,也在debug下也能执行)

...全文
87 点赞 收藏 4
写回复
4 条回复
见习学术士 2014年01月24日
代码没问题,你可以换成

DWORD dwThreadId ;
m_hDAPThread = (HANDLE)_beginthreadex( NULL, 0, lpFunc, lpParam, 0, &dwThreadId );
创建试试
回复 点赞
JxSimons 2014年01月24日
CWinThread *pthread = AfxBeginThread(ThreadImportDZH,(LPVOID)this); 调试时发现返回值为0,即pthread =0;
回复 点赞
JxSimons 2014年01月24日
引用 1 楼 fengqinqdca 的回复:
你在线程里面打断点进不去?
是的,进不到功能函数里面
回复 点赞
华美乐章 2014年01月24日
你在线程里面打断点进不去?
回复 点赞
发动态
发帖子
进程/线程/DLL
创建于2007-09-28

6376

社区成员

4.9w+

社区内容

VC/MFC 进程/线程/DLL
社区公告
暂无公告