事件的本地副本

时间:2015-10-16 08:47:52

标签: c# multithreading events delegates

为什么我需要本地活动的本地副本public event EventHandler MyEvent = delegate {}; protected OnMyEvent() { var myEvent = MyEvent; myEvent(this, EventArgs.Empty); } 的目的)?

protected OnMyEvent() => MyEvent(this, EventArgs.Empty)
Imho,这在功能上类似于

public event EventHandler MyEvent;

protected OnMyEvent()
{
    var myEvent = MyEvent;
    if(myEvent != null)
        myEvent(this, EventArgs.Empty);
}

但我被告知本地副本至关重要。这完全是我的想法。

我同意本地副本是以下情况必须的:

null

因为在NullReferenceException之间检查和调用某些其他线程可能会取消订阅,如果它是最后一个订阅者,那么我们将获得$IP=((ipconfig | findstr [0-9].\.)[0]).Split()[-1]

0 个答案:

没有答案