我正在使用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();
}
简而言之,我结束了我的调试会话,而它似乎处于中间状态。这就是我所知道的全部。
答案 0 :(得分:5)
您可能需要重新启动才能清除此问题,但有一种方法是使用Process Explorer并搜索\Device\Serial0
的句柄。然后,您可以查看关闭此句柄是否有效,但它可能不会。
为了防止以后发生这种情况,您需要将comPort.Close()
电话放在finally
- 阻止:
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();
}