Обработка каждого нового события

157
07 апреля 2018, 19:28

Есть своё событие

public event EventHandler e1;

Вызываю его с помощью

e1?.Invoke(null, null);

Привязываю его к методу через

e1 += e1_click;

И обрабатываю через

private void e1_click(object sender, EventArgs e) { }

А теперь вопрос: если у меня будет, допустим, 10 вызовов события в секунду, а обработка одного вызова занимает 5 секунд, то оставшиеся 49 вызовов просто никак не обработаются и проигнорируются?

Как создать очередь вызовов, что бы был обработан каждый вызов, не зависимо от времени?

При этом так же нужно, что бы обработка шла в многопотоке

Answer 1

Обработка событий происходит в одном потоке в том же, в котором вы вызываете это событие. То есть вы не сможете сделать десять вызовов в секунду, так как следующий вызов события произойдет только после того, как отработают все обработчики. По сути event можно заменить списком делегатов.

READ ALSO
Многопоточный расчет интеграла

Многопоточный расчет интеграла

Пытаюсь реализовать мнопоточный расчет интеграла методами левых прямоугольников и трапецийНо при увеличении кол-ва потоков время работы...

173
C# и COM обьект

C# и COM обьект

Первый раз использую ком обьектыПодскажите пожалуйста, я зарегистрировал ком объект, теперь хочу проверить его работоспособность, методом...

122
WebBrowser не открывает некоторые сайты

WebBrowser не открывает некоторые сайты

Некоторые сайты не открываются с помощью контрола webbrowserПроверил версию webbrowser свойством version, версия полностью совпадает с установленным...

149