读书人

WaitForSingleObject具体如何用请指

发布时间: 2012-01-18 00:23:26 作者: rapoo

WaitForSingleObject具体怎么用,请指点!
一个程序的源代码中提到:int ret = WaitForSingleObject(lpOverlapped->hEvent, INFINITE);


我发现一个毛病,这个程序在运行的时候会‘卡死’,我Debug跟踪就是到了上面那句才卡住的


我想问的就是:“WaitForSingleObject这个函数怎么样可以即可以用他,也可以判断他是否返回FALSE或者说是返回非0值,然后怎么样可以判断他的返回值是没有等到消息的,这样好做处理”

[解决办法]

探讨
为何我

int ret = WaitForSingleObject(lpOverlapped->hEvent, 2000);
switch(ret)
{
case WAIT_TIMEOUT:
AfxMessageBox(_T("等待超时"));
break;
}

这样会一直卡住呢,换句话说根本没有进入到switch里面,这是为何呀

[解决办法]
软件就会卡死(线程死循环),应该是线程死锁了
WaitForSingleObject 会挂起 WaitForSingleObject所在线程,造成这边线程一再在等待
你检查下 设置lpOverlapped->hEvent 事件的代码,

读书人网 >VC/MFC

热点推荐