Возможно, это часть многопоточной программы. Хотя этот код не является потокобезопасным, он гарантирует, что после назначения переменной копирования он не будет изменен другими потоками, и весь код функции после этого будет работать последовательно.
Подобный код с событиями становится критичным в многопоточной среде:
MyEvent e = this.myEvent;
if ( e != null )
{
e();
}
Здесь, без создания локальной копии, можно получить исключение нулевого указателя, если событие становится нулевым после проверки на нулевое значение и перед вызовом.