当前位置:编程学习 > C#/ASP.NET >>

关于事件内核

WaitForSingleObject和SetEvent是在两个不同的线程中,而WaitForSingleObject的时间是INFINITE,也就是说一定要等到SetEvent才能继续运行。但是当两个线程都是在高速运行的时候(也就是说SetEvent和Wait是不同步的,但是每个Wait之后都应该会至少有一次SetEvent),会出现这种情况:就是突然Wait所在线程不运行了,我找来找去,可能的原因就只能是Wait没有收到SetEvent,导致线程一直在等待,而根据程序的其他信息判断是肯定有SetEvent的。
现在就想问一下,有没有可能发生这种情况? --------------------编程问答-------------------- 没看清楚你的实现方法 --------------------编程问答-------------------- 生产-消费
肯定是没问题的
问题出现在你的结构上 --------------------编程问答-------------------- 有可能你是 WaitForSingleObject SetEvent不同步造成的
例如 一个业务周期调用了3次 SetEvent, 
第一次 SetEvent ,WaitForSingleObject 触发, 处理事务
在这个过程中, 你第二次, 第三次调用SetEvent,让后WaitForSingleObject线程还在处理事务, 当处理完毕的时候Wait一下,仅处理的一个事件信号, 第三次Wait就卡住了。
补充:.NET技术 ,  VC.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,