5 / 5 / 1
Регистрация: 10.07.2013
Сообщений: 99
|
|
1 | |
Обработка нескольких событий27.08.2013, 12:18. Показов 1047. Ответов 5
Метки нет Все метки)
(
На форму за короткое время приходит несколько (3-7) одинаковых событий, которые вызывают в свою очередь один и тот же метод. Каким образом можно обработать этот спам и вызвать нужный метод 1 (ну или на крайний случай 2) раза?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
|
|
27.08.2013, 12:18 | |
Ответы с готовыми решениями:
5
Обработка событий от мыши С++ CodeBlocks и Graphics.h обработка событий Обработка событий (events) в Visual Studio Как задать выполнение нескольких событий на нажатие одной кнопки |
3254 / 2056 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
27.08.2013, 12:35 | 3 |
Таймер - да, но еще было бы неплохо разобраться что за события, почему они посылаются, мб ошибка чуть раньше.
0
|
5 / 5 / 1
Регистрация: 10.07.2013
Сообщений: 99
|
|
27.08.2013, 13:07 [ТС] | 4 |
При изменении состояния оборудования (например, при вытаскивании флешки), приходит несколько сообщений об изменении конфигурации: извлечение тома из двух веток, извлечение скрытых томов, изменение служебной информации и т.д. Мне нужно чтобы по этим сообщениям была обновлена структура дерева (метод renew() запушен), а он довольно тяжелый. Поэтому при его спаме программа фиснет секунд на 10 - это нехорошо.
Идея была такая, пробовал реализовать - спам остался, видимо накосячил.
0
|
6 / 6 / 1
Регистрация: 27.11.2012
Сообщений: 160
|
|
27.08.2013, 13:11 | 5 |
dBuSh83, так смотри, запустил программу, произошло событие, запомнил, проигнорировал его, а потом его повторы тоже игноришь, потом уже при смене ты его вызываешь, а запоминаешь другое, таймер обнуляешь, а если просто время истекло, то вызываешь событие, обнуляешь где запоминал и останавливаешь таймер
0
|
5 / 5 / 1
Регистрация: 10.07.2013
Сообщений: 99
|
|
29.08.2013, 12:57 [ТС] | 6 |
Тут опять же есть недостаток большой: события приходят не заподряд, те может быть такая очередь:С1СС23С4С, где С - нужное событие, 1-4 другие события. Те в данной ситуации 4 раза вызовется действие - не большой прирост производительности.
Проблему в некоторой мере решил так: при певрвом перехвате события включаю таймер на 1сек и увеличиваю счетчик, если по истечении времени счетчик изменился, то происходит нужный вызов и обнуление счетчика, а иначе снова вызывается таймер и снова проверка счетчика и тд. Максимум 3 вызова фунции происходит. Часто перекрывает всю очередь и вызывается всего 1 раз. Все-таки, получше чем было!
0
|
29.08.2013, 12:57 | |
Помогаю со студенческими работами здесь
6
Коды клавиш и обработка событий клавиатуры в консоли
Обработка нескольких строк Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |