我已经开发了一个简单的UWP应用程序,可以通过串行端口进行通信。我正在使用 SerialDevice 类进行通信。如果我处理SerialDevice对象,则在从串行端口读取任何数据之前,它的处理方法可以正常工作 一旦我开始通过串行端口读取数据,然后如果我想断开与该设备的连接并处置SerialDevice对象,它将卡在dispose方法中。 以下是我用来读取,写入和断开连接的函数:
paste0("ADCY", 1:10)
[1] "ADCY1" "ADCY2" "ADCY3" "ADCY4" "ADCY5" "ADCY6" "ADCY7" "ADCY8" "ADCY9"
[10] "ADCY10"
答案 0 :(得分:0)
我在某些版本的Windows 10上挂起SerialDevice.Dispose()也遇到了问题(或者它可能与计算机硬件有关)。在研究了一般的Windows /串行端口问题之后,似乎挂起的原因是线程问题。通过在断开连接功能中执行此操作,我能够解决该问题:
public void Disconnect()
{
:
// Don't call dispose directly as it hangs on some computers
// Calling this from a separate thread prevents it from hanging...
Thread thr = new Thread(new ThreadStart(serialPortClose));
thr.Start();
:
}
void serialPortClose()
{
_serialDevice.Dispose();
_serialDevice = null;
}