WaitForSingleObject(hEvent,2000);函数返回值WAIT_FAILED!该如何解决
WaitForSingleObject(hEvent,2000);函数返回值WAIT_FAILED!!
MDI程序,声明一个事件句柄为全局变量
HANDLE m_hEvent; //判断是否超时线程
然后在CChildFrame::OnCreate()函数中创建
m_hEvent=CreateEvent(NULL,TRUE,FALSE,NULL); 调试发现句柄非NULL;
然后在一个多媒体定时器中定时调用函数中使用。
在一个线程函数中使用WaitForSingleObject
ResetEvent(m_hEvent);
SendData(pData,length);
DWORD dwEvent=WaitForSingleObject(m_hEvent,3000);
if(dwEvent == WAIT_OBJECT_0)
{
//正常返回
}
else if(dwEvent==WAIT_FAILED)
{
//出现了错误!!!
}
else
{
//超时
}
代码之前运行一致正常。今天调试 发现WaitForSingleObject函数不等待一定时间,直接就运行过了。
追踪后发现是返回了错误,请问是什么原因导致的?????之前都是正常的。
------解决方案--------------------
WAIT_FAILED indicates failure. Waiting on an invalid handle causes WaitForSingleObject to return WAIT_FAILED.
等待的句柄无效了
------解决方案--------------------
对句柄m_hEvent进行初始化试试呢。
------解决方案--------------------
GetLastError()看看返回什么~~~
------解决方案--------------------
给句柄给个名称试试
------解决方案--------------------
GetLastError看什么错
------解决方案--------------------
GetLastError();的值是什么?
是不是你其它地方CloseHandle()了
------解决方案--------------------
我也遇到了相同的问题,求答案
MDI程序,声明一个事件句柄为全局变量
HANDLE m_hEvent; //判断是否超时线程
然后在CChildFrame::OnCreate()函数中创建
m_hEvent=CreateEvent(NULL,TRUE,FALSE,NULL); 调试发现句柄非NULL;
然后在一个多媒体定时器中定时调用函数中使用。
在一个线程函数中使用WaitForSingleObject
ResetEvent(m_hEvent);
SendData(pData,length);
DWORD dwEvent=WaitForSingleObject(m_hEvent,3000);
if(dwEvent == WAIT_OBJECT_0)
{
//正常返回
}
else if(dwEvent==WAIT_FAILED)
{
//出现了错误!!!
}
else
{
//超时
}
代码之前运行一致正常。今天调试 发现WaitForSingleObject函数不等待一定时间,直接就运行过了。
追踪后发现是返回了错误,请问是什么原因导致的?????之前都是正常的。
------解决方案--------------------
WAIT_FAILED indicates failure. Waiting on an invalid handle causes WaitForSingleObject to return WAIT_FAILED.
等待的句柄无效了
------解决方案--------------------
对句柄m_hEvent进行初始化试试呢。
------解决方案--------------------
GetLastError()看看返回什么~~~
------解决方案--------------------
给句柄给个名称试试
------解决方案--------------------
GetLastError看什么错
------解决方案--------------------
GetLastError();的值是什么?
是不是你其它地方CloseHandle()了
------解决方案--------------------
我也遇到了相同的问题,求答案