Code: Select all
public event EventHandler SomeEvent;
Eine weitere Sorge: Was passiert, wenn wir mehrere Handler haben und im ersten Handler eine Ausnahme auftritt? Alle Handler außer dem ersten werden übersprungen.
Also mache ich in meinem Code so etwas:
Code: Select all
var someEvent = SomeEvent;
if (someEvent == null)
return;
foreach (EventHandler handler in someEvent.GetInvocationList())
{
try
{
handler?.Invoke(this, EventArgs.Empty);
}
catch (Exception ex)
{
Console.WriteLine($"Exception in event handler: {ex.Message}");
}
}
Mobile version