小弟在做一个串口控制测试软件。开启了一个定时器调用serialport.write不断地发数据给串口,并读取回数。与此同时界面上还有其他的按钮也可以通过点击调用serialport.write来发数据,同时进行有时会冲突,然后serialport.write函数报了异常。请问这种情况应该如何解决。定时器和主界面线程不是同一个线程吗?如果我用trycatch把serialport.write函数调用放进去异常return还是用lock呢?有什么标准的处理方案吗?谢谢

解决方案 »

  1.   

    serialport.write应该是写入串口的发送缓冲区,并非直接操作串口,应该不会造成冲突的吧
      

  2.   

    它报什么异常?
    定时器和主界面确实是在同一个线程中。我觉得在主界面线程中事件触发和定时器触发,Windows操作系统会调度的,因为是在同一个线程中。
      

  3.   

    Timer里Write串口,可不是即时响应的,根据数据长短,时间也不一样。
    这个Write可不是同步的,是异步执行的。
    前面还没Write完,后面又Write,肯定会错。
    你不会想让系统来帮你调度异步执行的函数吧!!!