程序加了断点后,输出正确;反之出错……

xiaotiange 2010-08-04 09:02:12
C#窗体程序,关于串口通信的一个程序,我在接收信息的函数及相关函数内加断点后,显示正常的数据,然而去掉断点后,就显示错误的数据了(接收的字节有一部分丢失),这看起来很奇怪,让我困惑的很,大家说说这是怎么回事呢……
...全文
188 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuchao241241 2010-08-04
  • 打赏
  • 举报
回复
我个人觉得不是线程也不是接口问题,你用断点调试完一次吗?你看看你的程序是不是有问题咯。
烈火蜓蜻 2010-08-04
  • 打赏
  • 举报
回复
应该是楼主的程序数据没有接收完成就处理,造成的问题
yl1456765 2010-08-04
  • 打赏
  • 举报
回复
应该是程序数据没接受完就返回出去了,可以加个sleep(毫秒)或者wait()函数
  • 打赏
  • 举报
回复
就是时间间隔
wwei466 2010-08-04
  • 打赏
  • 举报
回复
这个我以前也遇到过。可能是没有处理过来,不太记得了。
你可以让线程sleep几毫秒。
或者查查别的错误。
记不太清了。
xiaotiange 2010-08-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 bdmh 的回复:]

应该是你的串口接收设置有问题,不如时间间隔
[/Quote]

不如时间间隔??
chazikai24 2010-08-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 bdmh 的回复:]
应该是你的串口接收设置有问题,不如时间间隔
[/Quote]

UP
bdmh 2010-08-04
  • 打赏
  • 举报
回复
应该是你的串口接收设置有问题,不如时间间隔
xuqing19830921 2010-08-04
  • 打赏
  • 举报
回复
可以用信号量控制下,AutoResetEvent
Mars.xj 2010-08-04
  • 打赏
  • 举报
回复
不要奇怪了,听大家的加个sleep()试试吧
xiaotiange 2010-08-04
  • 打赏
  • 举报
回复
奇怪奇怪真奇怪
xiaotiange 2010-08-04
  • 打赏
  • 举报
回复
不是没有接收完,而是接收顺序错了
xiaotiange 2010-08-04
  • 打赏
  • 举报
回复

发送:01 01 21 01 00 0a e7 f1
实际返回:(分段返回)

01 01 0C 22 02 06 02 AB
55 55 00 00 0F 00 FF 28
85
上面数据用工具测得

程序实际接收:
01 01 0C 22 02 06 02 AB 85 55 00 00 0F



实际接收在AB后便没有接收 55 55 00 00 0F 00 FF 28 而是接收 最后的85 ,然后又从第二个55开始接收,
就是这样……
程序里在接收位置加断点就正常接收
wang329382414 2010-08-04
  • 打赏
  • 举报
回复
时间间隔的问题
xiaotiange 2010-08-04
  • 打赏
  • 举报
回复
是这样:

一克代码 2010-08-04
  • 打赏
  • 举报
回复
把线程停顿几秒?

这样程序还怎么用 啊?
YapingXin 2010-08-04
  • 打赏
  • 举报
回复
可能是该wait的时候没wait。

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧