1. 主程序的一个CEvent, 被DLL-A和DLL-B使用, 这2个DLL中的线程都在等待这个事件被为信号状态, 可是当主程序把她SetEvent后, 只有一个DLL得到这个事件的状态, 另外一个继续在等待, 如果再次SetEvent, 另外一个线程就会收到, 为什么会这样? 解决办法是什么?2.

解决方案 »

  1.   

    对自动复位的事件
    SetEvent和PulseEvent都只让一个等待该事件的线程被唤醒
      

  2.   

    创建CEvent对象,参数BOOL bManualReset设为true,试式
      

  3.   

    问题又出来了我在结构里面定义的这个CEvent, 不能初始化呀.
      

  4.   

    我的这个变量在结构体里面, 怎么初始化呀?typedef struct tagPLAN_PARAM
    {
           CEvent evRead;
    }PLAN_PARAM;我怎样初始化她为 手动模式?谢谢!
    --------------------------改成下面这样typedef struct tagPLAN_PARAM
    {
       tagPLAN_PARAM () : evRead (FALSE, TRUE)
       {
       };
       CEvent evRead;
    }PLAN_PARAM;