powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Периодическая отправка команд на сетевые устройства
11 сообщений из 61, страница 3 из 3
Периодическая отправка команд на сетевые устройства
    #38767168
Фотография Капюшон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я решил остановиться на примитивном решении: один выделенный поток каждые пять секунд просыпается и проверяет очередь.
...
Рейтинг: 0 / 0
Периодическая отправка команд на сетевые устройства
    #38768085
Фотография D129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Капюшоня решил остановиться на примитивном решении: один выделенный поток каждые пять секунд просыпается и проверяет очередь.
+1
Самое верное решение.
Потоки надо использовать когда без них нельзя.
Есть такое понятие как бизнес степ - то есть шаг программы, когда она успевает сделать то, что нужно.
Компьютер за микросекунды проверит массив даже из 5 тысяч элементов, которые будут отвечать за свое устройство.
Выдаст команду. И дальше будет спать стандартными средствами - проснется, выберет, выдаст - и дальше.
Никаких заморочек с синхронизациями и созданием потоков и их завершением....
Разбаловались совсем на быстром железе.....
Сколько у вас максимум устройств? 85? Это не то, что будет узким местом по производительности....
...
Рейтинг: 0 / 0
Периодическая отправка команд на сетевые устройства
    #38768513
Фотография Капюшон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну да, я использовал принцип KISS (Keep It Simple, Stupid)
Но, если честно, мне больше всего понравилось решение cdtyjv с Monitor.Wait, оно красивое.

Устройств около 200, но команды рассылаются не на все устройства и не всегда...
...
Рейтинг: 0 / 0
Периодическая отправка команд на сетевые устройства
    #38768525
cdtyjv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Капюшон ,
Ну и правильно вы все выбрали. Предложенное мною решение применяется в системе, где надо с милисекундной точностью генерировать тысячи событий в секунду. Там это оправдано на 100%. Если в вашем случае подходит более простое решение, и оно не имеет очевидных недостатков по вашим требованиям - надо использовать его.
...
Рейтинг: 0 / 0
Периодическая отправка команд на сетевые устройства
    #38768659
Фотография D129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cdtyjvв системе, где надо с милисекундной точностью генерировать тысячи событий в секунду.
В системе, которая называется не Windows, следует уточнить.
так как Windows для милисекундной точности не предназначена и технически не может ее обеспечить.
:-)
...
Рейтинг: 0 / 0
Периодическая отправка команд на сетевые устройства
    #38768731
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
D129cdtyjvв системе, где надо с милисекундной точностью генерировать тысячи событий в секунду.
В системе, которая называется не Windows, следует уточнить.
так как Windows для милисекундной точности не предназначена и технически не может ее обеспечить.
:-)

Справедливости ради стоит отметить, что есть аппаратные таймеры событий с высокой точностью , которые поддерживаются Windows. Ну и есть Multimedia Timers , хотя эти уже 1ms точность не обеспечат.

Правда, уверен, что свеном не это имел ввиду.
...
Рейтинг: 0 / 0
Периодическая отправка команд на сетевые устройства
    #38768753
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно еще заюзать Reactive Extension
...
Рейтинг: 0 / 0
Периодическая отправка команд на сетевые устройства
    #38768801
cdtyjv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
D129cdtyjvв системе, где надо с милисекундной точностью генерировать тысячи событий в секунду.
В системе, которая называется не Windows, следует уточнить.
так как Windows для милисекундной точности не предназначена и технически не может ее обеспечить.
:-)Не надо выдумывать. Stopwatch конкретно на моей машине выдает разрешение около 2000000, или 500 наносекунд. Вы в прошлом веке застряли.
...
Рейтинг: 0 / 0
Периодическая отправка команд на сетевые устройства
    #38768824
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cdtyjvНе надо выдумывать. Stopwatch конкретно на моей машине выдает разрешение около 2000000, или 500 наносекунд. Вы в прошлом веке застряли.
Но вы же не Soptwatch-ем управляете, а потоками? Квант времени на поток примерно 16 мс.
...
Рейтинг: 0 / 0
Периодическая отправка команд на сетевые устройства
    #38768882
cdtyjv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79Но вы же не Soptwatch-ем управляете, а потоками? Квант времени на поток примерно 16 мс.Вы путаете теплое с мягким. Мне по-барабану сколько времени планировщик выделяет времени _работающему_ потоку. Мне важно, как быстро один поток может разбудить другой. Напишите простой тест с Monitor.Wait/Pulse и посмотрите, сколько раз в секунду один и тот же поток может просыпаться. Вы будете приятно удивлены полученной цифрой, которая будет в разы больше, чем 1000/16=62.5.
...
Рейтинг: 0 / 0
Периодическая отправка команд на сетевые устройства
    #38768939
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cdtyjvДалее вы усыпляете поток черeз Thread.Wait() на этот интервал
cdtyjvМне важно, как быстро один поток может разбудить другой
Это непринципиально. Я же не говорю, что любой Wait означает автоматическое переключение контекста. Но на загруженной среде вероятность такого переключения возрастает. И в общем случае гарантировать миллисекундные задержки с помощью одного потока нельзя.
...
Рейтинг: 0 / 0
11 сообщений из 61, страница 3 из 3
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Периодическая отправка команд на сетевые устройства
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]