C#串口關閉SerialPort.Close()導致的卡死


https://blog.csdn.net/fengda2870/article/details/51554838
上面的鏈接給出了提示: 將Invoke變為BeginInvoke。

親測可行。

        private void SerialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            if (this.InvokeRequired)
            {
                this.BeginInvoke(new DataReceived(SerialPort_DataReceived), sender, e);   //DataReceived為代理類型
                return;
            }

            if (!SerialPortRuning)
            {
                SerialPortRuning = true;
                try
                {
                    // 接收串口數據
                }
                catch (Exception ex)
                {
} finally { SerialPortRuning = false; } } }

 

下面還有一篇關於串口相關的介紹:
C# 串口操作系列(2) – 入門篇,為什么我的串口程序在關閉串口時候會死鎖 ?

 

出處:https://blog.csdn.net/qq_27508477/article/details/87719668

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM