工作线程问题(死机现像)

vickia 2004-03-18 01:06:51
以下代码,为何在END成员函数中加了WaitForSingleObject,将出现死机现像,去掉则成功执行!为什么?
BOOL bEnd=FALSE;
CWinThread* pThread;
UINT ThreadFunc(LPVOID pParam)
{
while(!bEnd)
{
Beep(100,100);
}
return 0;
}

CTestDlg::Start()
{
pThread=AfxBeginThread(ThreadFunc,this);
pThread.m_bAutoDelete=FALSE;
}

cTestDlg::End()
{
bEnd=TRUE;
WaitForSingleObject(pThread->m_hThread,INFINITE);
delete pThread;
}


...全文
48 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
danielzhu 2004-03-18
  • 打赏
  • 举报
回复
程序是正确的
xuanzg 2004-03-18
  • 打赏
  • 举报
回复
我做了一个和你一样的 没有发现问题
我的环境 winxp vs6.0+sp5 PSDK
vickia 2004-03-18
  • 打赏
  • 举报
回复
非得用WaitForMultipleObjects???我仅等待一个线程对像的结束呀!!
szclm 2004-03-18
  • 打赏
  • 举报
回复
你用这个吧!
WaitForMultipleObjects(GROUPS*NUMBEROFTHREADS,(const HANDLE *)hThreads,TRUE,INFINITE);

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧