@pitekantrop228
Инженер

Как правильно спроектировать приложение?

Помогите, как правильно отделить зерна от плевел.
Есть у нас устройство, которое гонит по uart довольно большое число измерений (~100 различных переменных).
Сейчас у нас есть приложение, которое удовлетворительно их выводит в нужном нам виде, но интерфейс и прием данных работают в одном потоке, и когда исчезает поток входных данных, весь интерфейс "виснет".
Какова правильная архитектура такого типа приложений? Выносить в отдельный поток прием данных, в отдельный обработку и в отдельный интерфейс?
  • Вопрос задан
  • 140 просмотров
Пригласить эксперта
Ответы на вопрос 3
tsklab
@tsklab
Здесь отвечаю на вопросы.
Если вам нужно что-то делать, когда нет данных — управляйте в отдельном потоке.
Ответ написан
Комментировать
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Арихитектура в общем то такая

Создаете поток "Data pump"

В нем получаете данные и скидываете в основной поток.

В основном потоке не забываете рефрешить данные и забираете из хранилища.

Не понял что за ЯП, но для WinForms нужны примитивы синхронизации отрисовки и других потоков, впрочем и для других языков тоже.
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
То, что может быть независимо - должно быть изначально независимо.
Если обработка нужна ВСЕГДА при поступлении данных - два потока: приём данных + обработка и интерфейс отображения.
Если данные поступают быстрее, чем обработка, или нужно их хранение в "сыром" виде для дальнейшей обработки - три потока: приём данных, обработка данных и интерфейс отображения.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы