从委托调用列表添加/删除方法时是否需要锁定? C#

时间:2016-05-20 21:43:40

标签: c# events delegates

据我所知,建议为自定义事件添加/删除方法设置锁。此外,当C#编译事件时,它指的是内部创建的delagate字段。我需要使用not event而不是私有委托和公共Add / Remove方法,在这种情况下我是否也应该使用锁,如下面的代码所示?

na.rm = TRUE

评论后的UPD:为什么我仍然需要(或者我不是?)使用锁定以下实现,其中我使用自定义事件的添加/删除但委托变量而不是事件变量:

private EventHandler _delegate;
public void Add(EventHandler e)
{
    lock(_locker)
    {
        _delegate += e;
    }
}
public void Remove(EventHandler e)
{
    lock(_locker)
    {
        _delegate -= e;
    }
}
UPD2:我不认为这是重复的问题,因为我没有问过标准的obj.myEvent + = onMyEventHandler线程安全(这是答案),而是关于添加/删除事件的访问器和关于自定义Add(),Remove()方法

0 个答案:

没有答案