Мне нужен какой-то совет в правильном кодировании:
Я работаю над программой, в которой используются несколько последовательных соединений. Каждая линия связи имеет контроллер, работающий как слой абстракции. Между контроллером и последовательным портом вставлен протокол для переноса данных в пакеты, готовых к передаче. Протокол заботится о неудачных поставках, повторении и т.д. Чтобы гарантировать, что GUI не будет висеть, каждая строка подключения (протокол и последовательный порт) создается в отдельном потоке. Контроллер обрабатывается основным потоком, так как он имеет элементы управления в графическом интерфейсе.
В настоящее время, когда я создаю потоки, я решил создать для них цикл сообщений (Application.Run()), поэтому вместо опроса буферов и получения, если нет работы, я просто вызываю поток (BeginInvoke) и использует цикл сообщений в виде буфера. В настоящее время это работает хорошо, и серьезных проблем пока нет.
Теперь мой вопрос: Является ли это "хорошим кодированием", или я должен использовать цикл while на протекторе и быть буферами опроса вместо?, или что-то третье?
Я хотел бы показать код, но до сих пор это несколько тысяч строк кода, поэтому, пожалуйста, будьте конкретны, если вам нужно увидеть какую-либо часть кода.:)
Спасибо.