У меня возникают проблемы, когда я пытаюсь использовать функцию 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 или BlueTooth. Или, конечно, ключ, предназначенный для принудительного применения лицензионного соглашения, единственный намек на ваш вопрос.
Вам нужно обратиться к производителю устройства для поддержки. С низкими шансами вы услышите что-нибудь назад, этот вид неудачи всегда является хорошей причиной для серьезного недоверия к качеству устройства. Поэтому выбросьте его и получите еще один от другого производителя, чтобы он не потерял ваше время.