老兄,
我今天用了半天时间帮你做了测试,你将主线程的优先级提到高再试试。
祝你好运。
如果需要,我可以把测试代码给你。[email protected]

解决方案 »

  1.   

    呵呵,你将 两个 EThread 线程 放到 MainThread 的里面建立试试!
      

  2.   

    非常感谢 liugy(最佳搭档) ,uaiia(蛋壳) 。
      

  3.   

    逻辑有错误
    MainThread
          r = ::WaitForMultipleObjects(2,eve,FALSE,INFINITE);
          ::SetEvent(sve[r]);
    EThread
          ::WaitForSingleObject(sve[i],INFINITE);
          ::ResetEvent(eve[i]);   //该事件没有及时Reset,导致主线程多次捕获
          ++c[i];
          ::ResetEvent(sve[i]);
          ::SetEvent(eve[i]);可改为
    MainThread
          r = ::WaitForMultipleObjects(2,eve,FALSE,INFINITE);
          ::ResetEvent(eve[i]);  
          ::SetEvent(sve[r]);
    EThread
          ::WaitForSingleObject(sve[i],INFINITE);
          ++c[i];
          ::ResetEvent(sve[i]);
          ::SetEvent(eve[i]);