powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Периодическая отправка команд на сетевые устройства
25 сообщений из 61, страница 2 из 3
Периодическая отправка команд на сетевые устройства
    #38760287
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К100 потоков - это уже 100 МБ. Много это или мало?
Осталось только увидеть в совете свенома где же эти 100 потоков?

Лично я понял так, что поток был заведен только для того, чтобы не лочить UI. Поэтому он и один. Иногда и я так делаю, бывает проще чем с таймером. Не всегда, но бывает. Например, когда нужно не с каким то интервалом что-то дергать, а выдерживать интервал между окончанием обработки одной итерации и началом работы другой.
...
Рейтинг: 0 / 0
Периодическая отправка команд на сетевые устройства
    #38760297
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79Алексей К100 потоков - это уже 100 МБ. Много это или мало?
Иногда и я так делаю, бывает проще чем с таймером. Не всегда, но бывает. Например, когда нужно не с каким то интервалом что-то дергать, а выдерживать интервал между окончанием обработки одной итерации и началом работы другой.

Так с таймером жеж то же самое
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
_timerDB = new System.Threading.Timer(TimerMethod,null,Timeout.Infinite, Timeout.Infinite);
_timerDB.Change(_ProcessQueueDelay, Timeout.Infinite);

private void TimerMethod(Object state)
        {
              ............
               _timerDB.Change(_ProcessQueueDelay, Timeout.Infinite);
        }
...
Рейтинг: 0 / 0
Периодическая отправка команд на сетевые устройства
    #38760304
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PallarisArm79пропущено...

Иногда и я так делаю, бывает проще чем с таймером. Не всегда, но бывает. Например, когда нужно не с каким то интервалом что-то дергать, а выдерживать интервал между окончанием обработки одной итерации и началом работы другой.

Так с таймером жеж то же самое
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
_timerDB = new System.Threading.Timer(TimerMethod,null,Timeout.Infinite, Timeout.Infinite);
_timerDB.Change(_ProcessQueueDelay, Timeout.Infinite);

private void TimerMethod(Object state)
        {
              ............
               _timerDB.Change(_ProcessQueueDelay, Timeout.Infinite);
        }



Ну допустим, этот метод появился только с 3.5 версии. :-) А во-вторых, каждый раз менять время? Проще Thread.Sleep.
...
Рейтинг: 0 / 0
Периодическая отправка команд на сетевые устройства
    #38760310
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pallaris,

Ну и, если уж совсем заморочиться, то этот метод только у Threading.Timer. А в Windows.Timer и Timers.Timer такого метода нет, я только что проверил.
...
Рейтинг: 0 / 0
Периодическая отправка команд на сетевые устройства
    #38760320
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79А в Windows.Timer и Timers.Timer такого метода нет, я только что проверил.

Это не кошерные таймеры :)
...
Рейтинг: 0 / 0
Периодическая отправка команд на сетевые устройства
    #38760336
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to all
Ну а чем массив таймеров не устраивает, есть ли какие ограничения на количество таймеров в системе? спасибо
...
Рейтинг: 0 / 0
Периодическая отправка команд на сетевые устройства
    #38760345
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степиНу а чем массив таймеров не устраиваетСвеном запретил + топикстартер не ищет лёгких путей.
Где-то в степиесть ли какие ограничения на количество таймеров в системе?Смотря каких.
Где-то в степиспасибоПожалуйста!
...
Рейтинг: 0 / 0
Периодическая отправка команд на сетевые устройства
    #38760350
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степиto all
Ну а чем массив таймеров не устраивает, есть ли какие ограничения на количество таймеров в системе? спасибо

Массив таймеров Windows.Timer - это жесть. Она работают, если мне память не изменяет, в основном потоке, поэтому тупить будет сильно.

Про остальные не знаю, но думаю, что можно, но это неоптимально.

А про таймеры и особенности здесь: http://msdn.microsoft.com/en-us/magazine/cc164015.aspx
...
Рейтинг: 0 / 0
Периодическая отправка команд на сетевые устройства
    #38760355
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79Массив таймеров Windows.Timer - это жесть.Что мешает по срабатыванию такого таймера запускать операции асинхронно?
...
Рейтинг: 0 / 0
Периодическая отправка команд на сетевые устройства
    #38760357
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79,
я формовые таймеры вообще не рассматриваю, за ненадобностью, если не изменяет память в 98 были еще какие ограничения
на количество таймеров в системе, щас по моему нет ( пока пул для калбеков не треснет, и то получим перехлест по дискретности)
...
Рейтинг: 0 / 0
Периодическая отправка команд на сетевые устройства
    #38760368
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КArm79Массив таймеров Windows.Timer - это жесть.Что мешает по срабатыванию такого таймера запускать операции асинхронно?
Ничего, я просто ответил на вопрос про массив таймеров. Если он один - вопросов к нему нет. Если их 100,200,300 штук, будут проблемы, даже если операции обработки запускать асинхронно.

Где-то в степия формовые таймеры вообще не рассматриваю, за ненадобностью
Откуда же я знаю, что вы рассматриваете :-) Вы просили про таймеры, я ответил. Winforms в массиве не можно, остальные можно.
...
Рейтинг: 0 / 0
Периодическая отправка команд на сетевые устройства
    #38760387
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79Алексей Кпропущено...
Что мешает по срабатыванию такого таймера запускать операции асинхронно?
Ничего, я просто ответил на вопрос про массив таймеров. Если он один - вопросов к нему нет. Если их 100,200,300 штук, будут проблемы, даже если операции обработки запускать асинхронно.В WPF проблем не будет, при высокой скорости запуска асинхронной операции.
...
Рейтинг: 0 / 0
Периодическая отправка команд на сетевые устройства
    #38760395
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КArm79пропущено...

Ничего, я просто ответил на вопрос про массив таймеров. Если он один - вопросов к нему нет. Если их 100,200,300 штук, будут проблемы, даже если операции обработки запускать асинхронно.В WPF проблем не будет, при высокой скорости запуска асинхронной операции.
Это который DispatcherTimer? возможно, я WPF не знаю. Но речь шла о System.Windows.Timer, а не Syste.Windows.Threading.Timer
...
Рейтинг: 0 / 0
Периодическая отправка команд на сетевые устройства
    #38760397
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79Алексей Кпропущено...
В WPF проблем не будет, при высокой скорости запуска асинхронной операции.
Это который DispatcherTimer?Да.
Arm79Но речь шла о System.Windows.Timer, а не Syste.Windows.Threading.TimerОк.
...
Рейтинг: 0 / 0
Периодическая отправка команд на сетевые устройства
    #38760399
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К,

Кстати, Алексей, а вы не считаете, что костыль для UI-таймера, который запускает асинхронную обработку, сложнее, чем запустить отдельный поток обработки либо использовать нормальный таймер?
...
Рейтинг: 0 / 0
Периодическая отправка команд на сетевые устройства
    #38760410
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79,
управление ui таймерами идет через процедуру окна, имхо тут узкое место
...
Рейтинг: 0 / 0
Периодическая отправка команд на сетевые устройства
    #38760414
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79Алексей К,

Кстати, Алексей, а вы не считаете, что костыль для UI-таймера, который запускает асинхронную обработку, сложнее, чем запустить отдельный поток обработки либо использовать нормальный таймер?Моё мнение:

1. Тип таймера выбирается в зависимости от потребностей.
1.1 Нужна синхронизация с UI при старте операции: DispatcherTimer
1.2 Не нужна: System.Threading.Timer

2. Реализация через таймер удобнее и эффективнее реализации через отдельный поток + очередь + WaitHandle.Wait.
...
Рейтинг: 0 / 0
Периодическая отправка команд на сетевые устройства
    #38760430
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К1.1 Нужна синхронизация с UI при старте операции: DispatcherTimer
В случае асинхронных операций все равно нужна будет синхронизация доступа к UI. Да и, как правильно заметил Где-то в степи, там узкое место - окно. Я где-то здесь на форуме читал, что быстрее 60 раз в секунду форму не отрисовать из-за ограничений на количество сообщений в очереди. Таким образом, те же 60 таймеров при ежесекундном срабатывании будут давать значительную погрешность. Если относительно WPF это неправда, буду рад услышать экспертное мнение.
Алексей К2. Реализация через таймер удобнее и эффективнее реализации через отдельный поток + очередь + WaitHandle.Wait.
В вашем случае все равно от очереди не убежать, разве что действительно массив таймеров. Но скажу честно, мне такая версия не нравится.
...
Рейтинг: 0 / 0
Периодическая отправка команд на сетевые устройства
    #38760437
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К2. Реализация через таймер удобнее и эффективнее реализации через отдельный поток + очередь + WaitHandle.Wait.
нет особой разницы
...
Рейтинг: 0 / 0
Периодическая отправка команд на сетевые устройства
    #38760442
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79Алексей К1.1 Нужна синхронизация с UI при старте операции: DispatcherTimer
В случае асинхронных операций все равно нужна будет синхронизация доступа к UI.Я про синхронизацию при старте операции, а не при её выполнении/окончании.
Arm79Да и, как правильно заметил Где-то в степи, там узкое место - окно.В WPF создаётся один API-таймер для ближайшего таймера, привязанного к данному диспетчеру. См метод http://www.dotnetframework.org/default.aspx/DotNET/DotNET/8@0/untmp/WIN_WINDOWS/lh_tools_devdiv_wpf/Windows/wcp/Base/System/Windows/Threading/Dispatcher@cs/2/Dispatcher@cs]UpdateWin32TimerFromDispatcherThread . Поэтому количество таймеров погоды не делает.
Arm79Я где-то здесь на форуме читал, что быстрее 60 раз в секунду форму не отрисовать из-за ограничений на количество сообщений в очереди. Таким образом, те же 60 таймеров при ежесекундном срабатывании будут давать значительную погрешность. Если относительно WPF это неправда, буду рад услышать экспертное мнение.Сколько бывает событий MouseMove в секунду? И ничего...
Arm79Алексей К2. Реализация через таймер удобнее и эффективнее реализации через отдельный поток + очередь + WaitHandle.Wait.
В вашем случае все равно от очереди не убежать, разве что действительно массив таймеров. Но скажу честно, мне такая версия не нравится.Я не настаиваю. Моё мнение ничем не лучше и не хуже остальных мнений. :-)
...
Рейтинг: 0 / 0
Периодическая отправка команд на сетевые устройства
    #38760445
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилАлексей К2. Реализация через таймер удобнее и эффективнее реализации через отдельный поток + очередь + WaitHandle.Wait.
нет особой разницыНа нет и суда нет. :-)
...
Рейтинг: 0 / 0
Периодическая отправка команд на сетевые устройства
    #38760451
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79В вашем случае все равно от очереди не убежать.Предпочитаю использовать готовую очередь из ThreadPool или Dispatcher, в зависимости от используемого таймера, вместо того, чтобы писать очередь самому.
...
Рейтинг: 0 / 0
Периодическая отправка команд на сетевые устройства
    #38760452
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КСколько бывает событий MouseMove в секунду? И ничего...
А сколько? И разве вы не замечали, что при некоторой загрузке формы курсор двигается рвано?
Алексей КВ WPF создаётся один API-таймер для ближайшего таймера, привязанного к данному диспетчеру. См метод http://www.dotnetframework.org/default.aspx/DotNET/DotNET/8@0/untmp/WIN_WINDOWS/lh_tools_devdiv_wpf/Windows/wcp/Base/System/Windows/Threading/Dispatcher@cs/2/Dispatcher@cs]UpdateWin32TimerFromDispatcherThread . Поэтому количество таймеров погоды не делает.
Простите, но это разве не та же фигня, только вид сбоку? Какая разница, 100 таймеров с обработчиком раз в секунду, или один таймер срабатывающий 100 раз в секунду? И то, и другое - слишком высокая нагрузка для UI
...
Рейтинг: 0 / 0
Периодическая отправка команд на сетевые устройства
    #38760465
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79Алексей КСколько бывает событий MouseMove в секунду? И ничего...
А сколько? И разве вы не замечали, что при некоторой загрузке формы курсор двигается рвано?В нормально написанных приложениях - нет. :-)
Arm79Алексей КВ WPF создаётся один API-таймер для ближайшего таймера, привязанного к данному диспетчеру. См метод http://www.dotnetframework.org/default.aspx/DotNET/DotNET/8@0/untmp/WIN_WINDOWS/lh_tools_devdiv_wpf/Windows/wcp/Base/System/Windows/Threading/Dispatcher@cs/2/Dispatcher@cs]UpdateWin32TimerFromDispatcherThread . Поэтому количество таймеров погоды не делает.
Простите, но это разве не та же фигня, только вид сбоку? Какая разница, 100 таймеров с обработчиком раз в секунду, или один таймер срабатывающий 100 раз в секунду? И то, и другое - слишком высокая нагрузка для UIЗначит нужно отказываться от синхронизации с UI, если "нагрузка" на UI-поток окажется недопустимой. Я же не утверждаю, что DispatcherTimer - это единственный способ.
...
Рейтинг: 0 / 0
Периодическая отправка команд на сетевые устройства
    #38760485
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не нравится таймер, можно вызвать ThreadPool.RegisterWaitForSingleObject самостоятельно. :-)
...
Рейтинг: 0 / 0
25 сообщений из 61, страница 2 из 3
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Периодическая отправка команд на сетевые устройства
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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