本文介绍了是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#的空条件委托调用线程安全的?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!