В этой лекции рассмотрим реальные сценарии использования событий в .NET: реакцию на действия пользователя, уведомления о прогрессе и завершении операций, события жизненного цикла доменных объектов, работу в многопоточной среде (маршалинг через
SynchronizationContext/
Dispatcher) и паттерн
Event Aggregator. Обсудим лучшие практики: стандартные делегаты
EventHandler/
EventHandler<T>, неизменяемые
EventArgs, безопасный вызов через
?.Invoke, инкапсуляцию через
OnEventName, отписку и предотвращение утечек, а также thread-safety.