2 yjp1242725797 yjp1242725797 于 2016.01.16 17:27 提问

请问有谁知道windows系统共享内存映射方式通信时双方等待超时是什么原因
//让服务器处理请求
    if(!(::SetEvent(hExec)))
    {
        printf("发送请求失败!\n");
        bResult=false;
        return bResult;
    }
    //等待服务器处理完毕
    long wait=::WaitForSingleObject(hDone, 5000);

5个回答

qq_27183003
qq_27183003   Ds   Rxr 2016.01.16 21:47
已采纳

等待超时,就是说5秒内hDong没有信号。
服务器那边没发信号。需要核实服务器那边的程序。

caozhy
caozhy   Ds   Rxr 2016.01.16 20:58

::WaitForSingleObject(hDone, 5000);
等待5秒,(5000毫秒),对方不响应,信号量不变,就超时了。

oyljerry
oyljerry   Ds   Rxr 2016.01.16 21:39

你自己wait函数中加了超时 就是说超时时间内对应的事件没有触发 看看是不是死锁了

yjp1242725797
yjp1242725797   2016.12.14 18:34

谢谢各位大神了,虽然本来不报希望的,现在才来看到,但是真诚感谢你们的回答

91program
91program   Ds   Rxr 2016.01.16 19:03

共享内存映射本身,并没有超时的机制。
是你自己的代码中,设置了一些 Event。你要看看代码,为什么没有 Reset Event。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!