@Alex ай это - лентяй. Что, если в Вашем iframe
у Вас был документ HTML, который был похож:
<html>
<head>
<meta http-equiv="refresh" content="0;url=/pdfs/somepdf.pdf" />
</head>
<body>
</body>
</html>
Определенно взлом, но это могло бы работать на Firefox. Хотя интересно, стреляло ли событие загрузки слишком скоро в этом случае.
Добавьте это в свой код:
commPort = new SerialPort();
commPort.ReadTimeout = 1000000;
commPort.WriteTimeout = 1000000;
И я предлагаю вам увидеть SerialPort.Open Method
Из MSDN
Для каждого объекта SerialPort может существовать только одно открытое соединение.
Лучшая практика для любого приложения - подождать некоторое время после вызова метода Close перед попыткой вызвать метод Open, поскольку порт не может быть закрыт мгновенно.
Когда вы вызываете Close (), этому рабочему потоку требуется время, чтобы замедлить темп и выйти. Необходимое количество времени не указано, и вы не можете проверить, что это было сделано. Все, что вы можете сделать, это подождать хотя бы одну секунду, прежде чем снова вызвать Open ().
Если я вас правильно понял, вы хотите читать данные из последовательного порта даже после истечения тайм-аута.
Если да, то вы должны поймать TimeoutException и продолжить цикл. например, КОД MSDN
public static void Read()
{
while (_continue)
{
try
{
string message = _serialPort.ReadLine();
Console.WriteLine(message);
}
catch (TimeoutException) { }
}
}