Чтобы поднять событие, мы используем метод 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);
}
}
По-видимому, первый является потокобезопасным, но почему и как?
Не нужно начинать новый поток?