为什么serialport 控制使用readto之后close()报错

问题描述

我的代码如下privatevoidForm2_Load(objectsender,EventArgse){label7.Text="登陆单位机构代码:"+strB;this.label1.AutoSize=true;this.label1.AutoEllipsis=true;serialPort1.Close();}privatevoidSetLabel(stringtext){if(label1.InvokeRequired){SetlabelCallbackd=newSetlabelCallback(SetLabel);this.Invoke(d,newobject[]{text});}else{label1.Text=text;textBox1.Clear();textBox2.Clear();textBox3.Clear();richTextBox1.Clear();richTextBox2.Clear();string[]sArray=label1.Text.Trim().Split('#');label1.Text="";if(sArray[0].Length==9){textBox1.Text=sArray[0];textBox2.Text=sArray[1];textBox3.Text=sArray[2];richTextBox1.Text=sArray[3];richTextBox2.Text=sArray[4];}else{label1.Text="";MessageBox.Show("请重新扫描正确的二维条码!");}}}privatevoidserialPort1_DataReceived(objectsender,System.IO.Ports.SerialDataReceivedEventArgse){str="";try{str=serialPort1.ReadTo("@#");SetLabel(str);}catch{MessageBox.Show("读取数据出错!");}}privatevoidbutton1_Click(objectsender,EventArgse){if(comboBox1.Text.Trim().Length==0){MessageBox.Show("请选择端口号");}else{this.serialPort1.Close();this.serialPort1.PortName=comboBox1.Text;this.serialPort1.RtsEnable=true;this.serialPort1.Encoding=System.Text.Encoding.Default;try{this.serialPort1.Open();MessageBox.Show("端口打开成功!");button1.Enabled=false;}catch{MessageBox.Show("您选择的com口不存在!");}}}privatevoidbutton3_Click(objectsender,EventArgse){{if(serialPort1.IsOpen){MessageBox.Show("关闭成功!");}}}用readto读取数据后,用button3关闭com口,结果总是报错

解决方案

解决方案二:
错误提示呢?
解决方案三:
沙发错误提示呢?
解决方案四:
调试的时候,关闭的时候总是先跳到privatevoidserialPort1_DataReceived(objectsender,System.IO.Ports.SerialDataReceivedEventArgse){str="";try{str=serialPort1.ReadTo("@#");SetLabel(str);}catch{MessageBox.Show("读取数据出错!");}中catch部分,然后就不动了编译之后运行好像还可以
解决方案五:
不好意思,button3里落下一句serialPort1.Close();
解决方案六:
晕,我也碰到这个问题,原因是当窗口关闭时DataReceived中的线程还在运行。但我现在还没解决掉这个问题

时间: 2024-10-02 11:43:40

为什么serialport 控制使用readto之后close()报错的相关文章

编码-在控制台上maven打包报错。

问题描述 在控制台上maven打包报错. 楼主刚看徐晓斌的<maven实战>,正在控制台上鼓捣maven呢,mvn clean compile,mvn clean test也成功,然后mvn clean package打包也成功,但是由于打出来的Jar包没有指定main方法的位置,我就按照书上的案例,加入maven-shade-plugin插件,在pom.xml加入这话话,一直打包都是错误的. pom.xml文件配置如下: <?xml version="1.0" en

iis8-windows8.1 IIS8配置应用程序报错

问题描述 windows8.1 IIS8配置应用程序报错 windows8.1 IIS8配置应用程序,打开网站是提示 如下: 尝试读取或写入受保护的内存.这通常指示其他内存已损坏. 说明: 执行当前 Web 请求期间,出现未经处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息. 异常详细信息: System.AccessViolationException: 尝试读取或写入受保护的内存.这通常指示其他内存已损坏. 源错误: 执行当前 Web 请求期间生成了未经处理

删除一个文件夹目录里面含有很多文档的时候报错

今天同事在测试文件同步功能时,发现当删除一个文件夹目录,里面含有很多文档的时候就报: Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool exhausted at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:103) at org.apache.commons.dbc

DB2卸载重装后重建原来的数据库报错

我在电脑上装了DB2然后建了一个库ASF后来因为某些操作DB2不能用了,我就只能卸载后重新安装db2,安装完后想重新建库ASF,但却报错,提示我数据库以及存在,可我在控制台中确看不到.我想是我卸载时没有卸干净,我现在不知道怎么办了,请高手一定帮忙.谢谢:) ----------------------------------------------- 1.进入db2cmd,输入命令db2 list db directory,看是否有数据库ASF 2.如果有,则在控制中心中使用,在"数据库&quo

SharePoint Iframe 报错:此内容不能显示在一个框架中

问题描述 我们SharePoint站点用Excel Service发布的Excel,需要Iframe到其他系统中,但是,Iframe的时候发现报错"此内容不能显示在一个框架中". 后来,尝试在其他系统中Iframe SharePoint其他页面,同样报这样的错误:但是SharePoint自己的页面,Iframe自己页面不报错,Iframe自己的Excel Services 页面报错,很奇怪的问题. 问题截图 问题介绍 经过很长一段时间的搜索,发现是一种安全策略造成的,为了防止"

SharePoint 2007 管理中心TimerJob”计时器作业定义”页面报错

部署完成自己开发的TimerJob,发现"计时器作业定义"页面报错,进不去了,但是TimerJob可以正常运行,这样,肯定不行的,估计还是代码有问题,把这个脆弱的sharepoint页面搞死了. 如下图,http://URL/_admin/ServiceJobDefinitions.aspx未知错误,最烦人了,而且改了web.config也不抛 冷静下来,想了一下,可能有问题的几个点: 1.配置文件格式问题,删了配置文件,依然报错,而且格式有问题,基本上Timer服务起不来. 2.读取

安装Win7出现(0x00000124)蓝屏Debug报错的解决

貌似不少使用高端LGA1155系列CPU处理器(2500K.2600.2600K之类)的朋友们都会偶尔的遇到过新安装Win7(x86.x64)后在正常使用一般程序和运行游戏中触发 0x00000124 蓝屏报错 Zoe自从开始使用蜗牛机后,都不时的在运行某些程序时触发 0x00000124 蓝屏报错,时而一天几次,时而几天一次,而往往都是在重要时刻来报错的说... 怎么重要来着? >_< 例如在某些应用程序还差几秒钟完成的时候,可恶的是还未保存;又如是在网上看连续剧看电影几乎到结局那段紧张关头

win8.1复制文件报错“目标文件夹访问被拒绝”怎么办

  解决win8.1系统复制文件报错"目标文件夹访问被拒绝"的方法 方法如下: 1. 按"Win+X"快捷键,在弹出菜单中选择"命令提示符(管理员)",输入"icacls c: /setintegritylevel M"命令回车,稍等几分钟,执行完成即可将C盘安全级别下调至M级.(如果想要恢复的话,则使用icacls c: /setintegritylevel H即可将C盘安全级别上升至H级.) 2. 右击C盘"属性

报错502 bad gateway是什么意思

  一.502 bad gateway含义 502 bad gateway英文翻译为502类型的错误或无效网关,其中502指的是报错类型代码. 二.产生502 bad gateway报错原因 出现502 bad gateway的原因有多种,本质上是我们在连接服务器时向服务器发送请求失败,有可能是服务器当前链接太多,导致服务器方面无法给于正常的响应,产生此类报错,也有可能是服务器连接不正确,也有可能是服务器真的挂了无法访问了,当然这并不意味着服务器已关闭(无响应网关/代理),也许是上游服务器和网关