MFC中创建线程,向listbox里面添加文本,为什么程序执行,点击按钮后出现程序停止工作立即结束?

DWORDCc2Dlg::DoPut(){//inta=(rand()%(100-0));CStringamdg=_T("d");m_PBUFF1.AddString(a... DWORD Cc2Dlg::DoPut()
{
//int a=(rand()%(100-0));

CString amdg=_T("d");
m_PBUFF1.AddString(amdg);
return 0;
}

void Cc2Dlg::OnBnClickedStart()
{
// TODO: 在此添加控件通知处理程序代码
HANDLE hThread1;

hThread1=CreateThread(NULL,
0,
(LPTHREAD_START_ROUTINE) Cc2Dlg::DoPut(),
NULL,
0,
NULL);
//WaitForSingleObject(hThread1,INFINITE);

}
展开
 我来答
danruo_male
2017-01-10 · TA获得超过584个赞
知道小有建树答主
回答量:231
采纳率:96%
帮助的人:60.9万
展开全部

创建的新线程DoPut生命期很短:为listbox添加一行数据,随后就结束了。这就是原因。

如果按照下面修改一下,那么就不会立即结束了。

DWORD Cc2Dlg::DoPut()
{

while(1)
{
    CString amdg=_T("d");
    m_PBUFF1.AddString(amdg);
    Sleep(1000);//sleep 1 second
}


return 0;
}
追问

请问我改完之后,listbox里面的确在添加文本,但是问什么不显示出来呢?如图

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式