Чтобы вызвать событие, мы используем метод OnEventName вроде этого:
protected virtual void OnSomethingHappened(EventArgs e)
{
EventHandler handler = SomethingHappened;
if (handler != null)
{
handler(this, e);
}
}
Но в чем разница с этим?
protected virtual void OnSomethingHappened(EventArgs e)
{
if (SomethingHappened!= null)
{
SomethingHappened(this, e);
}
}
Очевидно, первый потокобезопасен, но почему и как?
Нет необходимости начинать новую тему?