c#写串口收发工具,收到数据要开线程做数据处理吗?

三号 2013-08-01 02:59:07
我完全不懂c#,在网上找到一些关于c#的串口收发工具的代码,然后改了一下,自己也做了一个c#的串口收发工具,使用的代码大概是这样的:
SerialPort sp = new SerialPort(); 
sp.DataReceived += new SerialDataReceivedEventHandler(sp_DataReceived);


我可以在sp_DataReceived函数里面读取数据:
Byte[] received = new Byte[sp.BytesToRead]; 
sp.Read(received, 0, received.Length);


但是我还需要处理这些数据,我应该自己开一个新线程去处理数据还是直接在这个接收函数里面处理数据?

谢谢指导!!
...全文
664 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
三号 2013-08-02
  • 打赏
  • 举报
回复
因为现在的情况是我在pc端需要不断地接收串口数据,另一方面也要不断的去解析数据并且显示数据,所以如果我将解析数据的过程写进sp_DataReceived这个接收函数里面,会不会出现数据漏掉之类的问题?要不要在sp_DataReceived函数里面开线程去解析数据?
zhiwensun 2013-08-02
  • 打赏
  • 举报
回复
C#会自动为你做这些事。
请叫我卷福 2013-08-02
  • 打赏
  • 举报
回复
如果你怕影响你接收数据的效率,而且处理数据很复杂,那么建议你将接收到的数据放入一个公共缓冲区,另开辟线程处理 如果你不担心处理数据会影响你接收数据的效率,那么你完全可以再DataReceived之后,立马处理,甚至更新UI 这是个典型的设计结构 参见 http://www.cnblogs.com/xiaozhi_5638/p/3167794.html 博客后半部分的说明
兔子-顾问 2013-08-02
  • 打赏
  • 举报
回复
可以看看我的博客。 http://blog.csdn.net/wuyazhe/article/category/695097
向立天 2013-08-02
  • 打赏
  • 举报
回复
引用 4 楼 u011379381 的回复:
[quote=引用 3 楼 xianglitian 的回复:] 问错地方了 这里是VC/MFC论坛
哦哦,不好意思,我找不到独立的c#版,以为c#也可以发在这里。。。那么我要发在哪个版?[/quote] 这里http://bbs.csdn.net/forums/CSharp
三号 2013-08-02
  • 打赏
  • 举报
回复
引用 3 楼 xianglitian 的回复:
问错地方了 这里是VC/MFC论坛
哦哦,不好意思,我找不到独立的c#版,以为c#也可以发在这里。。。那么我要发在哪个版?
向立天 2013-08-02
  • 打赏
  • 举报
回复
问错地方了 这里是VC/MFC论坛

110,538

社区成员

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

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

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