|
1
14
唉,这是USB串行端口仿真器的老问题。串口是可以追溯到石器时代的设备。它们以前是拧在车上的,在程序使用时,如果不引来火花和滚滚浓烟,就无法将它们取下。石器时代还包括缺乏任何类型的即插即用支持,因此程序可以检测到该设备突然变为gonzo。
根据大众的需求,微软在.NET4.0中做了一些改变。实际上不确定在那个版本中会发生什么。如果你还停留在早期版本上,唯一合理的办法就是在USB插槽旁边贴上一个标牌:“使用时不要取下!”这就不可避免地会有人拔下设备至少两次,看看会发生什么。之后他们就厌倦了,让你安静下来。 非常不合理的解决方法是一个包含以下内容的app.exe.config文件:
别用它。 |
|
|
2
6
因此,如果继承.NET SerialPort类并重写打开/关闭,则可以执行以下操作:
在公开赛期间,打电话就行了
如果USB被拔出,这将抛出一个异常,抱怨对基流的访问。要么检查
这就解决了问题,你的应用程序将处理它被拉出的事实,并且当你关闭时它不会崩溃。 我目前无法使它,然后重新打开端口,如果它插回,但至少有一些进展以外的标签说,不要碰。。。 |
|
3
2
您可以从SerialPort继承并重写Dispose()方法来处理此类异常。您只需吞并异常(Dispose无论如何都不应该抛出)。 如果要记录异常或以其他方式处理它,则必须检查 处理 例如。
|
|
|
4
1
我通过创建一个单独的处理串行端口的进程来解决这个问题。当串行端口被拔下时,我重新启动进程。现在我可以在不重新启动主应用程序的情况下重新连接到已拔出的串行端口设备。
串口过程码
主要应用
|
|
|
5
0
.NET4.0也帮不上忙。我已经安装了VS2010-没什么变化。仍会引发未处理的异常。不幸的是,“在USB插槽旁边贴上一个标牌:“使用时不要取下!”似乎是唯一的决定。。。 |
|
|
6
0
|
|
|
A B · C#Excel自动调整列避免长文本时出错 1 年前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 1 年前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |