Pull to refresh
18
Иван Борисенко@avesus

User

25
Subscribers
Send message
:-) ну, ну, ну…
асинхронность без многопоточности — это один цикл и действия, разбитые во времени.
Вполне себе бывает.
И именно здесь есть среднее звено парадигмы мышления. Т.е., сначала мы пишем последовательный («синхронный» :-) код. Затем учимся разбивать код на независимые от последовательности выполнения группы («асинхронный» код). А потом уже работаем с многопоточной обработкой — но опыт с асинхронным кодом идёт нам на пользу.
Совет автору: а вы абсолютно все пакеты пришедших данных пытались там выводить на графике? Очередь сообщений надо бы разгружать сразу: если вам нужны данные «на потом», то лучше сразу подсчитать среднее значение (которое пойдёт на график).
Вообще, задача очень нетривиальная, см. TCP throttling.

И, простите, «в лоб» не решаемая — получили то, что получили :-)
А вообще, неплохо заранее продумывать архитектуру в таких задачах.
По-моему, хорошие асинхронные системы можно проектировать, только когда словил достаточно граблей и понабрался большого опыта. Короче, лет через 10 коммерческого программирования асинхронность начинает подразумеваться автоматически.
5 баллов! Но, по моему скромному мнению, основная проблема предложенного подхода — это сложность изменения стереотипов Заказчика. Особенно, когда этот заказчик — государство.
Но уж если мы свободны в выборе — то только так и нужно делать!
Рекомендую попробовать счастья с Waitable Timer'ом. На мой взгляд, под Виндой это самый надёжный и гибкий способ, когда нужен прецизионный таймер.
12 ...
7

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity