waitforsingleobject不起作用??

leisurelycxf 2011-06-06 06:22:19
视图中
Handle pThread=AfxBeginThread(SleepFunc,this);
if(WaitForSingleObject(d,INFINITE)==WAIT_OBJECT_0)
{MessageBox("...."));}




子线程
UINT SleepFunc
{Sleep(1000);return 0;}


什么都没有发生啊 不可思议啊 快崩溃了啊
...全文
169 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangxiangdong_sl 2011-06-09
  • 打赏
  • 举报
回复
d如果是事件,而且没有信号,将永远不会到这儿来,找一个地方,SetEvent(d),肯定会过入这个线程。
oldmtn 2011-06-07
  • 打赏
  • 举报
回复
CWinThread* pThread;
CWinThread* qThread;
CWinThread* rThread;

pThread=AfxBeginThread(MulThreadSearchTrgl1,this);
qThread=AfxBeginThread(MulThreadSearchTrgl2,this);
rThread=AfxBeginThread(MulThreadSearchTrgl3,this); //开辟三个子线程

人家一楼写的不是的对的吗?
leisurelycxf 2011-06-06
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20110306/22/c986d26e-05c4-497e-9caa-68d2145fbf87.html
我是按照这个里面写的

难道一楼的是误人子弟??
pThread=AfxBeginThread(MulThreadSearchTrgl1,this);
qThread=AfxBeginThread(MulThreadSearchTrgl2,this);
rThread=AfxBeginThread(MulThreadSearchTrgl3,this); //开辟三个子线程

HANDLE hThread[3];
hThread[0] = pThread;
hThread[1] = qThread;
hThread[2] = rThread;
WaitForMultipleObjects(3,hThread,TRUE,INFINITE)
leisurelycxf 2011-06-06
  • 打赏
  • 举报
回复
太感谢了 果断给分
其实我代码写的是
CWinThread* pThread=AfxBeginThread(SleepFunc,this);
HANDLE d=pThread;
if(WaitForSingleObject(d,INFINITE)==WAIT_OBJECT_0)


终于明白这个错误了..
再次感谢
leisurelycxf 2011-06-06
  • 打赏
  • 举报
回复
上面写了 . 是打字打错了

Lactoferrin 2011-06-06
  • 打赏
  • 举报
回复
AfxBeginThread的返回值不是HANDLE,是CWinThread*
CWinThread*d=AfxBeginThread(SleepFunc,this);
if(WaitForSingleObject(d->m_hThread,INFINITE)==WAIT_OBJECT_0)
{MessageBox("...."));}
Lactoferrin 2011-06-06
  • 打赏
  • 举报
回复
if(WaitForSingleObject(d,INFINITE)==WAIT_OBJECT_0)
d哪里来的
leisurelycxf 2011-06-06
  • 打赏
  • 举报
回复
写错了 第一句是Handle d=AfxBeginThread(SleepFunc,this);

15,471

社区成员

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

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