Winform窗体,正在串口收发数据。用户异常操作,关闭窗体。再次启动该窗体,发生“com3拒绝访问”。

解决方案 »

  1.   

    对"com1"的访问被拒绝
      

  2.   

    估计打开后未关闭。可以在open之前先关闭.
      

  3.   

    那说明 你 Dispose 没写好, 退出时候 要先中断 硬件和com口的连接,然后程序释放对com口的控制
      

  4.   

    检查你有没有别的软件占用了COM3
      

  5.   

    .NET并不会主动是否串口句柄,必须你自己处理。
    程序异常退出后,很显然,你没有释放相应的资源。
      

  6.   

    事件中,我已经加入了串口Dispose。
      

  7.   

    资源没有释放啊,com口还占用着
      

  8.   

    退出程序时,直接杀掉进程。
    Kill
      

  9.   

    可以尝试在main函数最后,执行一行Environment.Exit(0);
      

  10.   

    应该是异常退出后,还抓着串口的资源,加入try...catch,异常时,也要释放资源。同时在启动代码中,也增加try...catch,在启动时,如果报那个错,就强行释放资源。