惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
量子位
腾讯CDC
A
About on SuperTechFans
小众软件
小众软件
Microsoft Azure Blog
Microsoft Azure Blog
T
Tailwind CSS Blog
V
V2EX
B
Blog RSS Feed
H
Hackread – Cybersecurity News, Data Breaches, AI and More
GbyAI
GbyAI
Recent Announcements
Recent Announcements
Microsoft Security Blog
Microsoft Security Blog
博客园 - 叶小钗
罗磊的独立博客
宝玉的分享
宝玉的分享
WordPress大学
WordPress大学
大猫的无限游戏
大猫的无限游戏
IT之家
IT之家
V
Visual Studio Blog
D
DataBreaches.Net
博客园 - 三生石上(FineUI控件)
月光博客
月光博客
有赞技术团队
有赞技术团队

C#

.NET 11 的 async 性能改进过于逆天 - V2EX macos10.15 上如何配置 vscode C#环境 asp net core 的工作站模式和服务器模式的区别 C#上位机开发是用 winform 那种传统工业风还是 WPF 现代风 paddleocr 的 C#集成问题 C#中异步相关的问题 .NET 换新的异步编程模型了,性能很强 想念 C# 老师,我太想进步了——关于 C#学习 visual studio 2022 代码提示消失 Cursor 生成的代码有个大坑,排查了一晚上才找出原因 C# 有哪些显著的缺点? 有没有 Sematic Kernel 可以落地的应用推荐? 请教下 C#有没有办法用装饰器全局监控方法执行时间 想用 c#的 mvc 实现一个功能. Unity 双击 C#脚本默认打开 Visual Studio 没有代码提示如何解决? 请问 c#有没有一些能规范学习的生产管理系统开源项目? C#串口通信问题 求教 C# 怎么同时交叉编译 windows Linux mac ?跟 go 一样 ClosedXML 如何对一列数据设置高亮重复项?(高亮重复项是 Excel 的一种功能;不能手动给重复单元格设置背景颜色,这样的话用户删除重复项后不会自动去除高亮) 求推荐软件开发练习项目的教学视频或书籍 如何在 visual studio 2022 中新建单元测试项目时默认使用最新版本? C#有像 C++的 libevent 同样定位的高性能跨平台网络库吗? 求助,如何正確劫持系統 DLL 調用 C#生态里有啥简单一点的容易上手的开源后台管理系统吗? .NET6 HttpClient 无反应也不超时? 关于.NET6 httpclient 用 IPV6 还是 IPV4 的疑问 关于 C#调用 DLL 的疑惑 C#程序员开发手机页面有什么适合的 UI 框架? 求教大佬,用 C#如何操作 word 文档
200 块有偿求助 C#高速读取串口,导致软件闪退的问题。
hulalahei · 2025-06-12 · via C#

开发框架是 Avaloina 11.2.2 + .NET 8.0 ,包是 System.IO.Ports 9.0.0-preview

问题描述:电脑通过串口读取硬件的数据,设备会连续不断返回数据,如果设备每秒返回 50 次数据,软件就不会闪退。如果设备返回数据的速度超过 200 次每秒,就有一定的概率会出现闪退的问题,闪退的频率大概就是 1-2 小时出现一次,偶尔会 10 分钟内连续出现两次。我换过不同的设备,只要是读取速度过快,都会出现相同的问题。

读取数据的代码片段是:

_serialPort = new SerialPort();
_serialPort.Parity = Parity.None;
_serialPort.DataBits = 8;
_serialPort.StopBits = StopBits.One;
_serialPort.RtsEnable = true;
_serialPort.Handshake = Handshake.None;
_serialPort.ReadTimeout  = 5;  
_serialPort.WriteTimeout = 5;
_serialPort.ReceivedBytesThreshold = 1;
_serialPort.DataReceived += OnSerialDataReceived;

private  async void OnSerialDataReceived(object sender, SerialDataReceivedEventArgs e){
   var buffer = new byte[512]; // 最多读 10 字节
   int numRead = await _serialPort.BaseStream.ReadAsync(buffer, 0, buffer.Length);
}

闪退的时候报错信息:

[06/02/2025 01:20:02] InvalidOperationException: Argument_NativeOverlappedAlreadyFree
   at System.Threading.ThreadPoolBoundHandle.OnNativeIOCompleted(IntPtr instance, IntPtr context, IntPtr overlappedPtr, UInt32 ioResult, UIntPtr numberOfBytesTransferred, IntPtr ioPtr)

第一个帮助我解决问题的小伙伴,200 红包感谢。