다음은 예제 코드입니다. http://msdn.microsoft.com/en-us/library/system.eventhandler.aspx
protected virtual void OnThresholdReached(ThresholdReachedEventArgs e)
{
EventHandler<ThresholdReachedEventArgs> handler = ThresholdReached;
if (handler != null)
{
handler(this, e);
}
}
(가) 있다면 우리는 확인할 수 없습니다 ThresholdReached
입니다 null
직접?
예, null을 직접 확인할 수 있습니다.
이 코딩 스타일은 멀티 스레딩 문제에 도움이됩니다. ThresholdReached
이 null 인지 확인한 다음 다른 스레드에서 null로 만든 다음 처리기를 실행하려고하면 실패합니다. 가능성은 없지만 여러 스레드를 실행하는 경우 가능합니다.
따라서이 예제에서는 ThresholdReached
first 의 값을 가져 와서 두 호출 사이에 다른 스레드가 해당 값을 망칠 염려없이이를 확인 null
하고 호출 할 수 있습니다 . 다중 스레딩 문제가 없다면 반드시 null을 직접 확인하십시오.
멀티 스레딩이 문제가되는 모든 종류의 시나리오에서 이러한 종류의 방어 코딩을 찾을 수 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다