evtPrint = CreateEvent(NULL,false,false,"PrintResult");   
    
WaitForSingleObject(evtPrint,10000);前十几个小时还能收到信号,可是时间一长就Timeout,请达人指教这是为什么?

解决方案 »

  1.   

    循环使用?WaitForSingleObject返回WAIT_OBJECT_0和WAIT_ABANDONED要调CloseHandle(evtPrint);
      

  2.   

    最怕是楼主循环调用CreateEvent,然后又忘记关句柄,导致句柄泄露。
      

  3.   

    或是哪位达人可以比较通俗地讲一下CreateEvent和WaitForSingleObject  的使用方法
    谢了!
      

  4.   

    你的意思就是等一会儿,为什么不直接写Sleep(10000)呢?
      

  5.   

    这样看你具体要如何应用,简单的情况是:
    使用前CreateEvent得到一个事件句柄,把句柄传给另一个线程,其中一个线程WaitForSingleObject等待这个事件,另一线程SetEvent,不需要再用时CloseHandle。
      

  6.   

    具体是这样的,
    一个程序evtPrint = CreateEvent(NULL,false,false,"PrintResult");  
    并在一个OnTimer里SetEvent,
    而另一个守护进程用WaitForSingleObject(evtPrint,10000); 在开始的一段里,我可以收到这个事件,可是运行十几小时,就收不到了,
    望高人指教一二,谢谢!