Вверх ↑
Ответов: 4612
Рейтинг: 746
#1: 2017-05-15 15:36:35 ЛС | профиль | цитата
Galkov писал(а):
А вот усмотреть логику закрывания порта по приему чего-то там по onRead - не получается у меня
В случае COM-порта - может и нет. Но мы обсуждаем глобальный паттерн использования параллельных потоков (я надеюсь, что кто-то вынесет для себя полезные моменты и применит их не только в HiAsm, а и в других местах). Например, такой глобальный смысл освобождения ресурсов по команде из параллельного потока есть в TCP компонентах, или, например, при работе с Pipe по отключению удаленной стороны.

Кроме того - а ты увидел в методе THICOMEX.ExecuteRd хоть какую-нибудь обработку ошибок? А прикинь, если кто-то выдернет твое устройство из порта, что будет делать параллельный поток? Он должен отловить ошибку, освободить все ресурсы и завершиться. Хотя я предполагаю, у COM-порта нет сигнала отключения, система просто будет и дальше ожидать от него прихода данных. Но я могу и ошибаться. И опять же, это применимо к COM-порту. А все остальные места использования потоков?
карма: 26

0
Редактировалось 2 раз(а), последний 2017-05-15 15:37:27