2015-08-01 1 views
1

Возможно ли попасть в C# при работе с формами число обработчиков, запущенных (или ожидающих в очереди) на данный момент выбранным событием? Например: у меня много баров, и они могут быть изменены ... поэтому, если я изменяю размер 4, то 4 раза запускается событие. Мне нужно получить последний, когда я изменяю размер нескольких баров ...Число обработчиков, запущенных с события

Я хотел бы проверить barResizeHandler, если количество событий в очереди равно 0, тогда я могу выполнить выбранное действие.

+0

В чем проблема? Насколько я помню, все действия пользовательского интерфейса выполняются в одном потоке, поэтому вы не можете изменять размер элементов до тех пор, пока не будет закончено окончательное изменение размера. Как следствие, каждое изменение размера является последним. – Oxoron

+0

Хм. Это жуткий ... – bodziuandrzej

+0

Что вы, Плохая производительность? Являются ли 4 изменения настолько медленными? – Oxoron

ответ

0

Не загружайте данные после изменения размера. Создайте данные для ваших данных и после изменения размера возьмите данные из него. Например,

... YourDataType[] _cashe = TakeDataFromSource(); // SaveDataToCashe ... public void OnResize(object sender, EventArgs e) { ShowDataInTheBars(_cashe); // Show data from the cashe }

+0

Но данные, которые мне нужно загрузить, зависят от изменения размера бара ... – bodziuandrzej

+0

Можете ли вы загрузить все данные в кэш? Если нет, не перезагружайте ВСЕ данные после изменения размера. Загрузите данные, которые ранее не были загружены. И, опять же, какова ваша реальная проблема? Покажите свой код, который загружает данные. – Oxoron