解决方案 »

  1.   

    看看能不能捕捉到什么异常??没有显示的Close()掉SerialPort应该不会因为高速收发数据而自动Close的吧。
    坐等高手解答
      

  2.   

    什么控件有SerialPort属性啊! 
      

  3.   

    DataReceived事件在辅助线程引发,有没有做UI界面操作?
    停止时间出现有规律还是随机?
    波特位、停止位什么设置一致吗?
      

  4.   

    有可能是发送端有问题呢?建议先缩小范围:1、你用你的上位软件发送数据,com口另一端接上 串口助手,设置自动回复  看看是否正常。
    2、或者把com连接线里面的收发线交叉一下,com1出去,com2 回来   。相当于自己发送给自己,自己接受数据。先排除其他问题
      

  5.   


    你既然记录了日志 ,就应该定位问题出在哪,2014-11-24 15:25:51 Info COM7:退出DataReceived
    是哪里的?
      

  6.   

     加上RECIVED 之后清缓存试下
      

  7.   

    如果你仅仅是想知道到底什么时候没有数据了
    可以做个全局int变量,在DataReceived里让它++,在timer里判断几秒都不变化了,就记录一下
    文件里存了那么多无用的东西,有用的反而找不到在哪里
      

  8.   

    谢谢大家的回答,不是串口的问题
    开始我还以为是串口的问题,以为那个地方参数没设对,照着msdn的例子写了下初始化
    有测试还是不行。今天才发现是用Renci.SshNet第三方库有问题,用的一个老版本,在sftp的服务端假死的情况下,这个库connect就会一直卡住了,我每隔半个小时会连接下sftp服务器,这样开了1天,他自己开启了很多子线程,导致程序里面除了主线程别的子线程都无法执行的情况。 我去Renci.SshNet官网上下了个最新版的 就解决了这个问题