Вы не можете закрыть кого-то elses соединение с портом, следующий код никогда не будет работать:
if (serialPort.IsOpen) serialPort.Close();
, поскольку Ваш объект не открыл порт, Вы не можете закрыть его.
Также необходимо закрыть и расположить последовательный порт даже после того, как исключения происходят
try
{
//do serial port stuff
}
finally
{
if(serialPort != null)
{
if(serialPort.IsOpen)
{
serialPort.Close();
}
serialPort.Dispose();
}
}
, Если Вы хотите, чтобы процесс был прерываем тогда, необходимо Проверить, открыт ли порт и затем обратно прочь в течение периода, и затем попробуйте еще раз, что-то как.
while(serialPort.IsOpen)
{
Thread.Sleep(200);
}
Причина №1? Пользователи ненавидят их.
Даже если они предлагают преимущества в других областях (разделение кода, дизайн приложения, скорость и т. Д.), Они являются частью пользовательского интерфейса. Если пользователи не одобряют их, не используйте их.
Фреймы были бесполезны, когда у вас был статический веб-сайт, например, чтобы избежать повторения меню навигации на всех страницах. Это также уменьшило общий размер страницы.
Оба эти аргумента теперь устарели: сайты без колебаний обслуживают толстые страницы, и большинство из них построены динамически, поэтому включение таких частей навигации (или статуса и т. Д.) Имеет нет проблем.
На часть «почему» хорошо дан ответ выше, частично из вашего собственного вопроса (вы попали в ограничение, хотя его можно переопределить с помощью JS).
Моя причина номер 1 не использовать фреймы состоит в том, что они нарушают функцию закладок (так называемую любимую) в браузерах.
Благодаря существующей сегодня технологии фреймы устарели. Но если ваш старый проект все еще использует их, вы можете обновить сообщения с помощью некоторого ajax.