本帖最后由 Michaellovekobe 于 2014-11-17 20:42:10 编辑

解决方案 »

  1.   

    前几天我临时写了一个引擎的例子。http://bbs.csdn.net/topics/390930620处理收到的消息之后,仅需要等待几毫秒而已,不应该等待命令执行完毕才接受后续的数据。只有这样才能不卡。
      

  2.   

    我测试了一下,在接收事件中,做了一个死循环while
    发现再有新的字节发过来时,该接收事件也不触发了。
    什么时候退出该循环,什么时候才能再次接收数据所以可以看出,datareceived事件是同步的
      

  3.   

    我又测试了一下,发现正常来说一个串口对应一个datareceived事件函数,对于本串口来说,datareceived是同步的。必须本次执行完,下一次的才能进来。
    然后,如果其他串口也同样使用同一个datareceived事件函数(这是可能的,通过+=手动添加)。那么对于多串口来说,datareceived是异步的。不同串口有数据时,会同时调用同一个datareceived事件函数。