2009-08-13 2 views
0

Правильно ли оставить COM1 открытым по всей программе?Правильно ли оставить COM1 открытым по всей программе?

и закрыть его только при выходе из программы?

благодарственное-х заранее

+0

Я не знаю, почему люди задавали этот вопрос, я думаю, что это справедливый вопрос – Fuzz

ответ

2

Это довольно часто, чтобы сделать это, потому что будет накладные расходы, связанные с открытием/закрытием операции. Вы можете в конечном итоге запутать открытие ОС и закрыть его слишком часто.

Итак, да ... откройте его, откройте его (если есть ошибка) и закройте его, когда закончите.

Единственная причина, по которой вы должны закрыть ее во время приложения, - это позволить другим приложениям совместно использовать порт.

0

Если вы сделаете это, другие приложения не смогут использовать этот порт, пока не выключите приложение. Это не похоже на хорошую идею, не так ли? Я думаю, вам следует открыть его, получить/отправить данные и закрыть его сразу же после того, как вы закончите с ним.

1

До сих пор я бы сказал, что Fuzz и RaYell оба справа (в зависимости от конкретной ситуации). Поэтому для моих проектов я обычно предоставляю кнопку в своей форме, где вы можете подключиться и отключить последовательный порт. Таким образом, вы также можете предоставить список доступных COM-портов, где пользователь может выбрать нужный порт, а затем нажать на соединение. Таким образом, пользователь может решить в конкретной ситуации, если это необходимо для закрытия порта или нет.

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

0

Это зависит от того, как работает аппаратное обеспечение. Когда вы открываете/закрываете порт, аппаратный сигнал может быть активирован UART на одном из контактов. У меня когда-то было устройство, которое бы сбросило бы себя всякий раз, когда порт был закрыт. Итак, YMMV.

0

Это зависит от того, что делает ваша программа и как долго она будет работать. Например, если вы общаетесь с модемом, вы, вероятно, не хотите, чтобы другие приложения прерывали ваш поток данных, поэтому в этом случае вы должны держать его открытым все время и закрывать его по завершении.

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

Смежные вопросы