open()需要很长时间才能执行
本文关键字:长时间 执行 open | 更新日期: 2023-09-27 18:18:41
当我试图使用SerialPort.Open()函数时,我遇到了麻烦。有时5秒钟就能打开,有时需要几分钟。
这是我的代码:
public void InvokeSerialPortdetectedEvent(string s)
{
SerialPortDetectEvent.Invoke(this, s); // the invoked funktion is called PortHandeler_SerialPortDetectEvent()
}
void PortHandeler_SerialPortDetectEvent(object sender, string name)
{
OpenSerialPort(name);
AddDongleToDeviceList();
}
private void OpenSerialPort(string Name)
{
if (serialPort1.IsOpen)
{
return;
}
serialPort1.PortName = Name;
try
{
serialPort1.Open();
if (serialPort1.IsOpen)
{
Console.Write("Open Serialport: " + Name);
}
}
catch (Exception e)
{
Console.Write(e.Message);
Console.Write(e.StackTrace);
}
}
这样长的延迟只能由端口的设备驱动程序引起。现在,一个模拟串行端口,实际上是通过USB或蓝牙信号。当然,一个加密狗意味着执行许可协议,这是你问题中唯一的暗示。
你需要向设备制造商寻求支持。由于你收到回复的几率很低,这种事故总是一个很好的理由,让你强烈怀疑手机的质量。因此,扔掉它,从其他制造商那里购买另一个,以防止它浪费你的时间。