c# SerialPort 对于端口拒绝访问问题

zx4535179 2015-07-14 09:46:11
public SerialPort sp = new SerialPort(setPortNumber());
我调用端口的时候都是
sp.Close();
sp.Open();
先关闭,再打开,但是有的时候sp.close(),可以通过,但是执行到sp.open()的时候会抛出异常
System.UnauthorizedAccessException: 对端口“COM13”的访问被拒绝。
在 System.IO.Ports.InternalResources.WinIOError(Int32 errorCode, String str)
在 System.IO.Ports.SerialStream..ctor(String portName, Int32 baudRate, Parity parity, Int32 dataBits, StopBits stopBits, Int32 readTimeout, Int32 writeTimeout, Handshake handshake, Boolean dtrEnable, Boolean rtsEnable, Boolean discardNull, Byte parityReplace)
在 System.IO.Ports.SerialPort.Open()
我想请问一下这是怎么回事,应该怎么解决呢?
...全文
5030 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
拜一刀 2015-07-14
  • 打赏
  • 举报
回复
关闭是不是需要一定的时间处理啊,紧接着打开的话还在占用中就会报错?
sinat_29461431 2015-07-14
  • 打赏
  • 举报
回复
重复打开了吧
zx4535179 2015-07-14
  • 打赏
  • 举报
回复
引用 2 楼 duanzi_peng 的回复:
sp.Close(); sp.Open(); -》 最忌讳这样写了。 close,之前应该判断 端口是否被打开;open 之前应该判断 端口是否被关闭。
之前做判断有什么必要吗?最终要实现的都是打开串口. open之前判断端口是否打开,isopen=true,我先close,在open,没关系吧? 或者isopen=close 我先close,在open,虽然close有些多余,但也应该不影响程序运行吧?
  • 打赏
  • 举报
回复
sp.Close(); sp.Open(); -》 最忌讳这样写了。 close,之前应该判断 端口是否被打开;open 之前应该判断 端口是否被关闭。
zx4535179 2015-07-14
  • 打赏
  • 举报
回复
咋没人回复呢~~~~~~~~~

111,097

社区成员

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

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

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