C# 串口收发 由于线程退出或应用程序请求 已放弃IO操作 的报错

在C# WPF应用中进行串口通信时,可能会遇到'由于线程退出或应用程序请求,已放弃IO操作'的错误。本文将探讨该问题的成因及提供解决方案,帮助开发者顺利实现串口的稳定收发。

C# WPF 串口收发


        private void LoadCellRighhtSerialPort_receivedStringEvent(object sender, SerialPortData e)

        {
        
//错误出现在这里,因为 BeginInvoke会阻塞线程,造成写串口的时候,串口一直在等待接收数据
//解决方案是:Dispatcher.Invoke(()=>this.xtLog.Text += e.Data));
            Dispatcher.BeginInvoke(new Action(() => { this.xtbLog.Text += e.Data; }));







            g_queueValue.Enqueue(RegExForIntData(e.Data));
            if(g_queueValue.Count>=5) //发送十次数据接收,但不保证每次都有反馈,所以有效五次后就要固定数值
            { 
                this.g_KnobForceCheckItem.InTimeVal = g_queueValue.Max();

                this.g_KnobForceCheckItem.KnobResult = this.g_KnobForceCheckItem.InTimeVal > this.g_KnobForceCheckItem.MinVal
                                     && this.g_KnobForceCheckItem.InTimeVal < this.g_KnobForceCheckItem.MaxVal;
                this.FinalResult = this.g_KnobForceCheckItem.KnobResult;
                if (!this.FinalResult)
                    this.DefectInfo = $"当前值{this.g_KnobForceCheckItem.InTimeVal}---检测范围: {this.g_KnobForceCheckItem.MinVal}~{this.g_KnobForceCheckItem.MaxVal}";
                canUpdateData = false;

            }
            
        }
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值