异步回调,生存期的问题
DWORD WINAPI ThreadProc(LPVOID lpParameter)
{
GMXX* gm = (GMXX*)lpParameter;
if (WaitForSingleObject(gm->m_readovp.hEvent, MAX_TIMEOUT) == WAIT_OBJECT_0)
{
ResetEvent(gm->m_readovp.hEvent);
if (gm->m_callback)
{
gm->m_callback->ReadCallback(gm->m_data, _tcslen(gm->m_data));
}
}
else
{
CancelIoEx(gm->m_hDevice, NULL);
}
return 0;
}在上面的代码中,如果gm已经析构了,那么引用它的成员的时候,程序就会crash,请教各位大虾,遇到这样的问题,如何处理?我尝试过RegisterWaitForSingleObject,UnregisterWaitEx,但不清楚UnregisterWaitEx应该在什么时候去调,msdn上说,必须调用UnregisterWaitEx,并且不能在调用RegisterWaitForSingleObject注册的回调中调用。
...全文
相关推荐
使用Promise链式调用解决多个异步回调的问题
主要给大家介绍了使用Promise链式调用解决多个异步回调问题的方法,文中给出了详细的介绍和示例代码,有需要的朋友可以参考借鉴,下面来一起学习学习吧。
js 异步操作回调函数如何控制执行顺序
本文为大家讲解下js异步操作时回调函数如何控制执行顺序,感兴趣的朋友可以参考下
form表单的异步回调方法
实现form表单的回调,以及异步,伪ajax,即用户通过form表单提交后,就可以等待后台的相应
ajax异步回调函数中给外部变量赋值的问题探讨
ajax异步回调函数中给外部变量赋值的问题在本文将为大家详细探讨下,感兴趣的朋友可以参考下
异步及异步回调
异步及异步回调


进程/线程/DLL
