如何在COM1保持打开状态后关闭它
本文关键字:状态 COM1 | 更新日期: 2023-09-27 18:20:22
我在Visual Studio C#中工作,打开了一个串行端口,但没有正确关闭它。现在我无法运行程序来尝试关闭它。我知道是我在使用它,但不知何故我失去了对它的控制。。?有没有其他方法可以关闭它?
我试过退出视觉工作室,但它仍然说我的访问被拒绝。我已经拔掉并重新插入了我正在使用的实际对象。我的下一步是重新启动计算机,但我不想每次我都这样做(这很频繁!)
顺便说一句,我在实验室工作,对这台电脑没有管理权限。另一个注意事项是,错误的文本是"拒绝访问端口‘COM1’。"
为了回应那些要求代码的人,。。comPort.Open();你还在找什么?
private void updateAccuSwayData() {
Console.WriteLine("Update thread started...");
comPort.Open();
comPort.WriteLine("Q");
Thread.Sleep(5);
while (!cancelRequested) {
//do stuff...
}
Console.WriteLine("Update thread halted.");
comPort.WriteLine("R");
comPort.Close();
}
简而言之,我在调试过程中结束了调试会话。我只知道这些。
您可能需要重新启动以清除此问题,尽管一种方法是使用Process Explorer并搜索'Device'Serial0
的句柄。然后,您可以看到关闭此句柄是否有效,但可能无效。
为了防止将来发生这种情况,您需要将comPort.Close()
调用放在finally
-block中:
try
{
comPort.Open();
// ...
}
finally
{
// Almost always ensures the COM port will be cleaned up,
// however, the MSDN remarks state that the port may not
// be closed immediately.
comPort.Close();
}