[求助]C# 串口事件接收高频次数据, sp.close()时就会程序会卡死.

jimodeduzou jimodeduzou 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
有相关开发经验的大侠们有遇到过同类问题吗?

目前要设计一个利用串口接收间隔为100~50ms的数据程序.
我用串口助手模拟以100ms间隔持续发送相同数据, 然后写程序利用串口接收数据事件对其数据进行单纯的接收.
如果不关闭发送端的话, 直接关闭接收端 (close() 方法), 程序就会随机性卡死在这条语句上.

因为在实际运作的时候, 发送端设备是无休止的向外高频发送数据, 我没有办法对设备进行任何操作. 只能被动接收.
这种情况下有什么好的办法可以解决吗?
另外是什么原因导致卡死呢?

接收事件的处理代码:

this.Invoke(updateSP_receiver, sp.ReadTo("\n")); //updateSP_receiver就是一个textbox接收string显示出来而已.
...全文

相关推荐

C#的通视行情接收程序

这是用C#写的通视行情接收程序! 可以接收行情数据!

无邪无敌

C#扫码枪开发实战:USB键盘模式与串口通信完整解析

在工业自动化和数据采集场景中,扫码枪是实现条码信息高效录入的关键外设。许多开发者初次接触时,常因混淆USB键盘模式与串口通信模式而陷入驱动和协议困境。USB扫码枪通常模拟键盘输入,依赖全局键盘钩子捕获数据;而串口扫码枪则基于RS232协议,通过SerialPort类进行可靠的数据帧读写。理解两者在数据流、焦点依赖、帧控制与稳定性上的差异,是设计稳定上位机系统的前提。本文从键盘输入模拟原理与串口数据通信机制切入,结合实际工程经验,详细对比两种模式的技术选型标准,并剖析数据清洗、断线重连、编码处理等高频坑点。无

weixin_34049948

用于去除心电图(ECG)高频干扰的IIR滤波器实现(基于C#)

采用C#实现的ECG低通滤波器,可有效去除高频噪声。ECG信号采样频率为250Hz ,滤波器系数是采用matlab中的fdatool设计得到。滤波器系数可按照自己设计的结果修改。

你行你上天

【工业物联网】基于C#的多串口并发通信优化:高频传感器数据零丢包采集与百万级实时查询系统实现

内容概要:本文介绍了在C#上位机开发中实现多串口高性能通信的完整解决方案,针对多串口并发场景下的串口资源冲突、线程阻塞、UI卡顿、数据库写入瓶颈和历史数据查询慢等问题,提出了一套系统性优化方案。核心技术包括串口池化管理、异步读写、数据缓存队列、UI防抖更新以及百万级数据的分表存储与高效查询。通过实际项目验证,实现了64个串口并发、每秒处理3000条数据、零丢包、UI响应低于30ms、百万数据查询小于1秒的高性能表现。; 适合人群:具备C#语言基础,熟悉串口通信、多线程编程和数据库操作的中高级开发者,尤其适用于工业自动化、物联网监测等领域的上位机开发人员; 使用场景及目标:①解决多串口高频数据采集中的性能瓶颈问题;②构建稳定、低延迟、高吞吐的上位机通信系统;③实现大数据量下的实时显示、批量存储与快速查询; 阅读建议:本文结合真实项目案例,代码可直接复用,建议读者在实践中逐步集成各项优化技术,重点关注异步编程、并发控制与数据库性能调优的协同设计。

威哥说编程

New-Passive-Demo.rar_C#编写rfid_DEMO_New Passive Demo_rfid_高频

C#编写的高频RFID读卡器程序,可以实现读取卡号。主要是用于牛只编号

林当时
评论 14
收藏 已收藏
分享
返回顶部
jimodeduzou
C# 111,129 成员 642,538 内容