向串口发送命令后,等待设备返回OK或Error的字符串。
这个过程使用一个while(true)循环不停的读取接口,是否可行?会有什么影响吗?

解决方案 »

  1.   

    新建一个线程执行while语句吧,你看看读数据的方法是否有异步的,也可以用异步等待
      

  2.   


    串口类没有异步。。只能这么干   private void RunDataReceived()
            {
                while (true)
                {
                    string buffer = serialPort.ReadLine();
                    OnDataReceived(buffer);
                }
            }上面的方法要自己 开个线程去跑,还有是以整行读取的。如果想以字节方式就自己 去绑定 serialPort.DataReceived 这个事件
      

  3.   

    使用serialPort.DataReceived 这个东西。
    当串口没有返回值的时候 线程是挂起的。当第一时间有返回值的时候他就有反应了。
      

  4.   

    用while(true),在子线程可以,在主线程的话会让界面卡死。
    用事件的话参考5楼
      

  5.   

    串口通信模式  请参考  http://www.cnblogs.com/xiaozhi_5638/p/3167794.html与socket通信  摄像头数据采集  麦克风受采集类似  
      

  6.   

    利用serialPort.DataReceived 的事件,他本身就是线程,比你的while(true)好很多