读书人

为什么AfxBeginThread后只执行了一次解

发布时间: 2012-01-29 21:39:32 作者: rapoo

为什么AfxBeginThread后只执行了一次
我AfxBeginThread后, 在PROC函数里面断点, 为什么不会重复执行啊, 就只执行了一次.

代码:

AfxBeginThread((AFX_THREADPROC)CheckSoftDog,(LPVOID)this,THREAD_PRIORITY_NORMAL,0,0,NULL);

static AFX_THREADPROC __stdcall CheckSoftDog(LPVOID lParam)
{
CPage_Com *p = (CPage_Com*)lParam;

p-> m_nTotalPort = p-> DllUtil.GetPortMax();

if(p-> m_nTotalPort == -1)
{
p-> m_cWarning.SetTextColor(RGB(255,0,0));
p-> m_cWarning.SetWindowText(wcscat(ttt,_T( "没有找到! ")));
}
else
{
p-> m_cWarning.SetWindowText(_T( " "));
}

Sleep(1000);

return 0;
}

代码是没有问题的, 只是不知道为什么只执行一次???
AfxBeginThread启动的线程什么时候会自动结束吗???

[解决办法]
你的代码就只是执行了一遍啊,要想重复执行,加个while(1)就行了
[解决办法]
线程函数结束时,线程也结束了啊
也可以通过exitthread()terminatethread()

读书人网 >VC/MFC

热点推荐