本文介绍了是C#的空条件委托调用线程安全的?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

限时删除!!

这是我一直写事件养殖户;例如PropertyChanged的:

 公共事件PropertyChangedEventHandler的PropertyChanged; 
私人无效RaisePropertyChanged(字符串名称)
{
VAR处理器=的PropertyChanged;
如果(处理!= NULL)
处理器(这一点,新PropertyChangedEventArgs(名));
}

在最新的Visual Studio,然而,灯泡thingamabob建议简化了代码这个:

 私人无效RaisePropertyChanged(字符串名称)
{
的PropertyChanged .Invoke(这一点,新PropertyChangedEventArgs(名));
}



虽然我赞成简化我总是,我想肯定这是安全的。在我的原代码,我的处理程序分配给一个变​​量,以防止竞争条件,其中用户可能成为其设置在空检查和调用之间。在我看来,新的简化形式将遭受这种情况,但我想看看是否有人能证实或否认这一点。


解决方案



https://msdn.microsoft.com/en-us/library/dn986595(v=vs.140).aspx

这篇关于是C#的空条件委托调用线程安全的?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

1403页,肝出来的..

09-08 23:02