이 예제에서 이벤트 핸들러에 대한 또 다른 참조를 만드는 이유는 무엇입니까?

사용자

다음은 예제 코드입니다. 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직접?

나단 A

예, null을 직접 확인할 수 있습니다.

이 코딩 스타일은 멀티 스레딩 문제에 도움이됩니다. ThresholdReached이 null 인지 확인한 다음 다른 스레드에서 null로 만든 다음 처리기를 실행하려고하면 실패합니다. 가능성은 없지만 여러 스레드를 실행하는 경우 가능합니다.

따라서이 예제에서는 ThresholdReachedfirst 의 값을 가져 와서 두 호출 사이에 다른 스레드가 해당 값을 망칠 염려없이이를 확인 null 하고 호출 할 수 있습니다 . 다중 스레딩 문제가 없다면 반드시 null을 직접 확인하십시오.

멀티 스레딩이 문제가되는 모든 종류의 시나리오에서 이러한 종류의 방어 코딩을 찾을 수 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

JavaScript에서 다양한 이벤트에 대한 단일 이벤트 핸들러를 만드는 방법

분류에서Dev

jQuery UI 툴팁이 제목에 대해 또 다른 div를 만드는 이유는 무엇입니까?

분류에서Dev

핸들러에 대한 참조를 전달하는 대신 메신저를 사용하는 이유는 무엇입니까?

분류에서Dev

Meteor에 이상한 이벤트 핸들러 구문이있는 이유는 무엇입니까?

분류에서Dev

UnobservedTaskException 이벤트 핸들러가 예외를 발생시키는 태스크에 대해 트리거되지 않는 이유는 무엇입니까?

분류에서Dev

이벤트 핸들러를 다른 변수에 복사하는 이유

분류에서Dev

동일한 부모로 다른 이벤트 핸들러를 처리하는 방법은 무엇입니까?

분류에서Dev

예외를 던진 객체가 이벤트 핸들러에서 생성 된 경우 전역 이벤트 핸들러에는 세부 정보가 없습니다.

분류에서Dev

VB6에서 핸들 (이벤트 핸들러가 아님)을 만드는 방법은 무엇입니까?

분류에서Dev

React : 각 자식에게 이벤트 리스너를 추가하고 부모의 이벤트 핸들러에 대한 참조를 전달하는 것이 비효율적입니까? 이벤트 버블 링이 가능합니까?

분류에서Dev

sslauncher : ///? ssurl = url Chrome Fedora SSLauncher에 대한 애플리케이션 또는 핸들러를 찾을 수 없습니다.

분류에서Dev

React-js에서 캡처 단계에 대한 이벤트 핸들러를 등록하는 방법은 무엇입니까?

분류에서Dev

VB.net에서 클릭시 데이터 그리드 뷰 화재를 사용하는 데 가장 적합한 이벤트 핸들러는 무엇입니까?

분류에서Dev

Ace Editor (자바 스크립트) : Ace Editors 이벤트 핸들러에 대한 탭 누르기 이벤트 트리거 ( '/ t'또는 공백 삽입뿐 아니라)

분류에서Dev

이 두 상황에서이 참조가 참조하는 키워드가 다른 이유는 무엇입니까?

분류에서Dev

React JS의 다른 입력에 하나의 이벤트 핸들러를 연결하는 방법은 무엇입니까?

분류에서Dev

외부 수명이 다를 때 참조 참조에 대한 하나의 역 참조를 다른 참조에 할당 할 수없는 이유는 무엇입니까?

분류에서Dev

다른 핸들러에서 angularjs 이벤트 핸들러를 어떻게 트리거 할 수 있습니까?

분류에서Dev

이 코드 조각에 대한 출력이 다른 이유는 무엇입니까?

분류에서Dev

이 간단한 F # 예제에서 약한 참조가 수집되지 않는 이유는 무엇입니까?

분류에서Dev

자동으로 삽입 된 양식 이벤트 핸들러가 생성 된 방법에 따라 다른 이유는 무엇입니까?

분류에서Dev

Aframe 구성 요소는 이벤트 핸들러에서 el을 참조 할 수 없습니다.

분류에서Dev

동적으로 추가 된 이벤트 핸들러는 자바 스크립트에서 이전 이벤트 핸들러를 비활성화합니다.

분류에서Dev

하나의 핸들러에서 여러 변경 이벤트를 처리하는 방법은 무엇입니까?

분류에서Dev

Nextjs의 다른 API 핸들러에서 API 핸들러에서 데이터를 가져 오는 방법은 무엇입니까?

분류에서Dev

대량 이벤트 핸들러를 설정할 수없는 이유는 무엇입니까?

분류에서Dev

iterable에 대한 참조를 삭제 한 후 루프가 반복되는 이유는 무엇입니까?

분류에서Dev

jest에서 지연된 이벤트 핸들러를 테스트하는 방법은 무엇입니까?

분류에서Dev

React Chart JS에서 포인트에 대한 OnClick 이벤트를 만드는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    JavaScript에서 다양한 이벤트에 대한 단일 이벤트 핸들러를 만드는 방법

  2. 2

    jQuery UI 툴팁이 제목에 대해 또 다른 div를 만드는 이유는 무엇입니까?

  3. 3

    핸들러에 대한 참조를 전달하는 대신 메신저를 사용하는 이유는 무엇입니까?

  4. 4

    Meteor에 이상한 이벤트 핸들러 구문이있는 이유는 무엇입니까?

  5. 5

    UnobservedTaskException 이벤트 핸들러가 예외를 발생시키는 태스크에 대해 트리거되지 않는 이유는 무엇입니까?

  6. 6

    이벤트 핸들러를 다른 변수에 복사하는 이유

  7. 7

    동일한 부모로 다른 이벤트 핸들러를 처리하는 방법은 무엇입니까?

  8. 8

    예외를 던진 객체가 이벤트 핸들러에서 생성 된 경우 전역 이벤트 핸들러에는 세부 정보가 없습니다.

  9. 9

    VB6에서 핸들 (이벤트 핸들러가 아님)을 만드는 방법은 무엇입니까?

  10. 10

    React : 각 자식에게 이벤트 리스너를 추가하고 부모의 이벤트 핸들러에 대한 참조를 전달하는 것이 비효율적입니까? 이벤트 버블 링이 가능합니까?

  11. 11

    sslauncher : ///? ssurl = url Chrome Fedora SSLauncher에 대한 애플리케이션 또는 핸들러를 찾을 수 없습니다.

  12. 12

    React-js에서 캡처 단계에 대한 이벤트 핸들러를 등록하는 방법은 무엇입니까?

  13. 13

    VB.net에서 클릭시 데이터 그리드 뷰 화재를 사용하는 데 가장 적합한 이벤트 핸들러는 무엇입니까?

  14. 14

    Ace Editor (자바 스크립트) : Ace Editors 이벤트 핸들러에 대한 탭 누르기 이벤트 트리거 ( '/ t'또는 공백 삽입뿐 아니라)

  15. 15

    이 두 상황에서이 참조가 참조하는 키워드가 다른 이유는 무엇입니까?

  16. 16

    React JS의 다른 입력에 하나의 이벤트 핸들러를 연결하는 방법은 무엇입니까?

  17. 17

    외부 수명이 다를 때 참조 참조에 대한 하나의 역 참조를 다른 참조에 할당 할 수없는 이유는 무엇입니까?

  18. 18

    다른 핸들러에서 angularjs 이벤트 핸들러를 어떻게 트리거 할 수 있습니까?

  19. 19

    이 코드 조각에 대한 출력이 다른 이유는 무엇입니까?

  20. 20

    이 간단한 F # 예제에서 약한 참조가 수집되지 않는 이유는 무엇입니까?

  21. 21

    자동으로 삽입 된 양식 이벤트 핸들러가 생성 된 방법에 따라 다른 이유는 무엇입니까?

  22. 22

    Aframe 구성 요소는 이벤트 핸들러에서 el을 참조 할 수 없습니다.

  23. 23

    동적으로 추가 된 이벤트 핸들러는 자바 스크립트에서 이전 이벤트 핸들러를 비활성화합니다.

  24. 24

    하나의 핸들러에서 여러 변경 이벤트를 처리하는 방법은 무엇입니까?

  25. 25

    Nextjs의 다른 API 핸들러에서 API 핸들러에서 데이터를 가져 오는 방법은 무엇입니까?

  26. 26

    대량 이벤트 핸들러를 설정할 수없는 이유는 무엇입니까?

  27. 27

    iterable에 대한 참조를 삭제 한 후 루프가 반복되는 이유는 무엇입니까?

  28. 28

    jest에서 지연된 이벤트 핸들러를 테스트하는 방법은 무엇입니까?

  29. 29

    React Chart JS에서 포인트에 대한 OnClick 이벤트를 만드는 방법은 무엇입니까?

뜨겁다태그

보관