Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
dBuSh83
5 / 5 / 0
Регистрация: 10.07.2013
Сообщений: 99
#1

Обработка нескольких событий - C++

27.08.2013, 12:18. Просмотров 601. Ответов 5
Метки нет (Все метки)

На форму за короткое время приходит несколько (3-7) одинаковых событий, которые вызывают в свою очередь один и тот же метод. Каким образом можно обработать этот спам и вызвать нужный метод 1 (ну или на крайний случай 2) раза?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.08.2013, 12:18
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Обработка нескольких событий (C++):

Обработка событий от мыши С++ - C++
Форумчане, сильно прошу, просто умоляю подкинуть какой то информации по обработке событий на чистом С++ без всяческих библиотек и тому...

CodeBlocks и Graphics.h обработка событий - C++
Всем привет! Нужно написать программу в CodeBlocks, а раньше я писал в Visual. Написал программу, которая рисует ферзей на шахматной...

Как задать выполнение нескольких событий на нажатие одной кнопки - C++
Добрый день всем! На форме расположен компонент TListView. По нажатию на заголовок столбца нужно выполнить сортировку данных (например,...

Обработка событий (events) в Visual Studio - C++
У меня есть два события, они выполняют одинаковые действия, можно ли как то сделать вызов одного события в другом?

Коды клавиш и обработка событий клавиатуры в консоли - C++
Многие часто спрашивают один и тот же вопрос по поводу обработки событий нажатия клавиш в консоли. вот простейший пример перехвата: ...

Тетрис - Реализация таймера и обработка событий с клавиатуры - C++
Пишу консольный тетрис. Столкнулся с проблемой таймера и перехвата событий с клавиатуры. Раньше с такими вопросами не сталкивался, поэтому...

5
luciys
5 / 5 / 1
Регистрация: 27.11.2012
Сообщений: 160
27.08.2013, 12:28 #2
мб таймер, когда происходит событие запускаешь таймер запоминаешь событие, например, если 1 секунду оно не вызывалось или пошло другое, то вызываешь его, а таймер stop
0
0x10
2548 / 1728 / 264
Регистрация: 24.11.2012
Сообщений: 4,348
27.08.2013, 12:35 #3
Таймер - да, но еще было бы неплохо разобраться что за события, почему они посылаются, мб ошибка чуть раньше.
0
dBuSh83
5 / 5 / 0
Регистрация: 10.07.2013
Сообщений: 99
27.08.2013, 13:07  [ТС] #4
Цитата Сообщение от 0x10 Посмотреть сообщение
Таймер - да, но еще было бы неплохо разобраться что за события, почему они посылаются, мб ошибка чуть раньше.
При изменении состояния оборудования (например, при вытаскивании флешки), приходит несколько сообщений об изменении конфигурации: извлечение тома из двух веток, извлечение скрытых томов, изменение служебной информации и т.д. Мне нужно чтобы по этим сообщениям была обновлена структура дерева (метод renew() запушен), а он довольно тяжелый. Поэтому при его спаме программа фиснет секунд на 10 - это нехорошо.

Цитата Сообщение от luciys Посмотреть сообщение
мб таймер, когда происходит событие запускаешь таймер запоминаешь событие, например, если 1 секунду оно не вызывалось или пошло другое, то вызываешь его, а таймер stop
Идея была такая, пробовал реализовать - спам остался, видимо накосячил.
0
luciys
5 / 5 / 1
Регистрация: 27.11.2012
Сообщений: 160
27.08.2013, 13:11 #5
dBuSh83, так смотри, запустил программу, произошло событие, запомнил, проигнорировал его, а потом его повторы тоже игноришь, потом уже при смене ты его вызываешь, а запоминаешь другое, таймер обнуляешь, а если просто время истекло, то вызываешь событие, обнуляешь где запоминал и останавливаешь таймер
0
dBuSh83
5 / 5 / 0
Регистрация: 10.07.2013
Сообщений: 99
29.08.2013, 12:57  [ТС] #6
Цитата Сообщение от luciys Посмотреть сообщение
потом уже при смене ты его вызываешь, а запоминаешь другое
Тут опять же есть недостаток большой: события приходят не заподряд, те может быть такая очередь:С1СС23С4С, где С - нужное событие, 1-4 другие события. Те в данной ситуации 4 раза вызовется действие - не большой прирост производительности.

Проблему в некоторой мере решил так: при певрвом перехвате события включаю таймер на 1сек и увеличиваю счетчик, если по истечении времени счетчик изменился, то происходит нужный вызов и обнуление счетчика, а иначе снова вызывается таймер и снова проверка счетчика и тд. Максимум 3 вызова фунции происходит. Часто перекрывает всю очередь и вызывается всего 1 раз. Все-таки, получше чем было!
0
29.08.2013, 12:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.08.2013, 12:57
Привет! Вот еще темы с ответами:

Обработка нескольких строк - C++
Помогите, честно, я прочитала много статей, они мне не помогли, понимаю, что вопрос глупый и элементарный. НО. Вот у меня есть файл с...

Реализация событий в С++ - C++
Мне нужно реализовать события, как в Дельфи или С++ Builder, на Visual C++. Но стандартный С++ не поддерживает указатели на функции-члены...

Журнал событий? - C++
надо создать что-то типа журнала событий. проблема в том чтобы вести хронологию. замучался с манами по localtime ctime и тд помогите...

Парсинг журнала событий - C++
возникла задача, получить некоторые данные из event log'a Windows, как это все реализовать ? с чего начать?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru