Что произойдет, если между моментом, когда вы проверите, если MyEvent имеет значение null, и вы запустите MyEvent, появится другой поток и отменит подписку на событие?

ти, я видел, что это часто используется:

    public event MyEventHandler MyEvent;

    private void SomeFunction()
    {
        MyEventHandler handler = this.MyEvent;

        if (handler != null)
        {
            handler(this, new MyEventArgs());
        }
    }

Когда это можно так же легко сделать так:

    public event MyEventHandler MyEvent;

    private void SomeFunction()
    {
        if (MyEvent != null)
        {
            MyEvent(this, new MyEventArgs());
        }
    }

Итак, я что-то упустил? Есть ли какая-то причина, по которой люди назначают событие обработчику, а затем поднимают обработчик вместо самого события? Это просто "лучшая практика"?

Ответы на вопрос(2)

Ваш ответ на вопрос