C# 串口通讯, 发送和接收是同步的,这个时候很容易出现读取超时问题,
this.serialPort.Read(receivedBuffer, 0, receivedBuffer.Length);
改为事件接收读取没问题
,请问,同步怎么避免超时问题,或者事件接收怎么保证一发一回
有么有什么好的解决方案
C# 串口同步读取超时
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- wanghui0380 2023-10-16 15:46关注
额,你离结果还差好几步。
慢慢来把,先理解第一步把。//伪代码 Task<bool> SendMsg(string msg) { TaskCompletionSource<bool> res = new TaskCompletionSource<bool>(); var 接收事件 = (Send, e) => { 串口.接收事件 -= 接收事件; res.TrySetResult(true); }; 串口.接收事件 += 接收事件; 串口.write(msg); return res.Task; }
你先理解这个,当然离最终完成还有好多步。但是如果你不理解这个,非要跟那个快倒的园子折腾啥 while(true)sleep read这套我也拦不住。只能默默“祝福”了
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 数据量少可以用MK趋势分析吗
- ¥15 使用VH6501干扰RTR位,CANoe上显示的错误帧不足32个就进入bus off快慢恢复,为什么?
- ¥15 大智慧怎么编写一个选股程序
- ¥100 python 调用 cgps 命令获取 实时位置信息
- ¥15 两台交换机分别是trunk接口和access接口为何无法通信,通信过程是如何?
- ¥15 C语言使用vscode编码错误
- ¥15 用KSV5转成本时,如何不生成那笔中间凭证
- ¥20 ensp怎么配置让PC1和PC2通讯上
- ¥50 有没有适合匹配类似图中的运动规律的图像处理算法
- ¥15 dnat基础问题,本机发出,别人返回的包,不能命中