Мне просто интересно, как именно .Net framework обрабатывает события.Если событие срабатывает, и никто не слушает, это делает звук?
Предположительно, когда происходит событие, все зарегистрированные обработчики вызываются (на новые потоки?). Если нет обработчиков, как далеко проходит обработка событий? Есть ли внутренний флаг «Нет слушателей», чтобы предотвратить потраченные впустую циклы?
Вопрос возникает, когда я размышлял над огромным количеством неиспользуемых событий, генерируемых сложными формами (особенно WPF). Ввод/выключение мыши/и т. Д.
+1. И чтобы ответить на один из вопросов, поставленных более непосредственно - когда никто не подписался на событие, его значение равно «null», поэтому проверка должна выполняться или иначе вызывается «NullReferenceException». Итак, есть флаг, в котором говорится, что «нет слушателей», который является «this.MyEvent == null». –