社区
C#
帖子详情
c# SerialPort类串口通讯的问题
acer123321
2008-12-12 01:32:35
出串口接收数据后用Socket传输到网络服务器上,
用Open()方法打开后,我用Close()关闭串口,
反复三次后,程序调试到Close()方法时,在DataReceived事件中抛出异常,
"线程退出或者是应用程序请求,无法进行IO操作"
我感觉可能是Close后,DataReceived事件中还有数据没有操作,但是我不知道如何处理好?
请各位大侠给些意见,很急啊。
...全文
168
5
打赏
收藏
c# SerialPort类串口通讯的问题
出串口接收数据后用Socket传输到网络服务器上, 用Open()方法打开后,我用Close()关闭串口, 反复三次后,程序调试到Close()方法时,在DataReceived事件中抛出异常, "线程退出或者是应用程序请求,无法进行IO操作" 我感觉可能是Close后,DataReceived事件中还有数据没有操作,但是我不知道如何处理好? 请各位大侠给些意见,很急啊。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
acer123321
2008-12-12
打赏
举报
回复
谢谢大家,已经解决了,我用BackgroundWorker处理SerialPort的DataReceived的事件,关闭串口的时候应该判断一下BackgroundWorker的isBusy属性,如果true的话,就Thread.Sleep(100);处理完DataReceived中的数据,然后在关闭。
wangping_li
2008-12-12
打赏
举报
回复
Abort()一下呢?
socket.Close();
mythread.Abort( );
acer123321
2008-12-12
打赏
举报
回复
我不是已接收就关闭,我是有打开串口和关闭串口的操作。
不可能关闭串口都等着关闭才窗体或者终端吧?
我感觉.NET中肯定会有相应的操作。
heyu1000
2008-12-12
打赏
举报
回复
“我感觉可能是Close后,DataReceived事件中还有数据没有操作,但是我不知道如何处理好? "
应该是这个问题啦,
并且个人觉得你没必要每次取了数据之后就关闭串口的,你可以封装一个类,将SerialPort封装到里面,或者直接继承也可以,做一个单件模式,这样的话,一开始的时候打开,应用程序关闭的时候才关闭串口,不要老是取打开关闭,
并且.NET里面,你关闭串口的时候,也未必真的就马上关闭了,因为垃圾回收是需要时间的,既然你用了DataReceived事件,那么说明你的串口随时都可以有数据进来的。
JustLovePro
2008-12-12
打赏
举报
回复
up
关注~
同样遇到此问题
C#
Se
ria
l
Port
类
串口通讯
助手程序demo
本文件是基于
C#
Se
ria
l
Port
类
串口通讯
助手程序,使用VS2013写的,里面有源程序代码。
C#
Se
ria
l
Port
类
串口通讯
程序并绘制实时数据图
C#
基于
Se
ria
l
Port
类
串口通讯
程序,可以接受数据并实时绘制数据图。很好的例子。
C#
se
ria
l
Port
控件
串口通讯
.zip
基于
C#
编程的
串口通讯
例程,使用自带控件
se
ria
l
Port
完成数据发送与接受,ini文件进行数据参数保存与加载。
C#
串口通讯
介绍
Se
ria
l
Port
类
串口通讯
NET Framework 2.0
类
库包含了
Se
ria
l
Port
类
,方便地实现了所需要
串口通讯
的多种功能,为了使MSComm编程方法快速转换到以
Se
ria
l
Port
类
为核心的
串口通讯
的设计方法,本文着重讨论了Visual Studio 6.0的MSComm控件和...
C#
se
ria
l
Port
--Tcp
Se
ria
l
port
串口通讯
C#
se
ria
l
Port
--Tcp
Se
ria
l
port
串口通讯
实现
se
ria
l
Port
通讯与Tcp
Se
ria
l
port
通讯
C#
110,534
社区成员
642,575
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章