我现在while循环中一直向串口发送数据 ;此时 OnComm事件就被阻止了。只有当跳出while循环后,才会处理OnComm的事件。如果我想优先处理OnComm函数 。应该怎么做呢?

解决方案 »

  1.   

    while循环一直发,是不是速度太快了,而且CPU一直被占用,没有时间处理数据啊
      

  2.   

    其实只要不是太快的话,用定时器发就可以了,SetTimer(1,200,NULL);//200m发一次或者怎的
      

  3.   

    在while循环中,即使不发数据,它也不处理OnComm事件 。我希望OnComm事件能得到优先的处理,即使在WHILE循环中。类似硬件中断的作用。 现在看来这种事情似乎不会发生啊。如果我现在开一个线程想监视的通信控件的接收状态 ,如果有接收事件的发生,我就去处理;处理接收事件后,我在返回之前的语句位置继续执行。 不知应该怎么做啊。
      

  4.   

    AfxBeginThread(CommWatchProc, this, THREAD_PRIORITY_NORMAL); 我用它开线程CommWatchProc ,结果编译不过去。可气。
      

  5.   

    CWinThread *pThread = NULL;//全局pThread = AfxBeginThread(CommWatchProc, this); UINT CommWatchProc (LPVOID lPvoid)
    {
         while(1)
         {
              do something.....;
              sleep(100);
         {
    }
    就可以了吧
      

  6.   

    不行啊。OnTimer 也只能是在while循环跳出之后才能执行。 现在才觉得对VC的认识太浅了。