[08] 이벤트 호출 시에는 null 조건 연산자를 사용하라
다음 본문은 도서 이펙티브 C# (빌 와그너)에서 나오는 주제를 다룹니다. 이벤트의 null 예외 이벤트를 호출하였을때, 결합된 이벤트 핸들러가 없다면 nullReference 예외가 발생한다. 때문에 예전에는 다음과 같은 방식으로 코드를 작성하였다. public void Test() { if(MyEvent != null) MyEvent(this, counter); } 그런데 이벤트를 발생시키는 코드를 수행하기 직전에 다른 쓰레드가 이벤트 핸들러의 등록을 취소한다면 이벤트 핸들러는 null 예외를 발생시킬 것이다. (재현도 어렵고 극단적인 케이스기는 하다) 이 때문에 멀티스레드 환경에서는 다음과 같은 코드로 오류를 방지했다. public void Test() { var tempHandler = MyEve..