SerialPort.Open () занимает очень много времени для выполнения

1

У меня возникают проблемы, когда я пытаюсь использовать функцию 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);
    }
}
  • 1
    Также медленно работает терминальная программа, такая как HyperTerminal или Putty?
  • 0
    Вы помните, чтобы закрыть его, когда закончите с объектом?
Показать ещё 2 комментария
Теги:
user-interface

1 ответ

2

Такие длительные задержки могут быть вызваны только драйвером устройства для порта. В настоящее время он эмулирует последовательный порт и фактически передает сигналы через USB или BlueTooth. Или, конечно, ключ, предназначенный для принудительного применения лицензионного соглашения, единственный намек на ваш вопрос.

Вам нужно обратиться к производителю устройства для поддержки. С низкими шансами вы услышите что-нибудь назад, этот вид неудачи всегда является хорошей причиной для серьезного недоверия к качеству устройства. Поэтому выбросьте его и получите еще один от другого производителя, чтобы он не потерял ваше время.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню