问题就是为什么不好?
而加了temp就好?

解决方案 »

  1.   

    注释里写得很清楚了啊:
        // Copy to a temporary variable to be thread-safe. 
    为了线程安全
      

  2.   

    它上面有一句注释:// Copy to a temporary variable to be thread-safe.
    说是为了线程安全copy一个临时变量。
    如果真是的生成了一个副本的话,这句话有理由。
    但这里应该是引用,如果另一个线程取消订阅或订阅SampleEvent事件,temp也会变。
    比如有个线程在 if (temp != null) 之后,取消订阅SampleEvent事件而使SampleEven为空,
    则temp也为空,也会出错。
    当然如果temp是生成副本,则线程安全。不知有没有道理,望知道的同志说说。