gpt4 book ai didi

.net - 实现 INotifyPropertyChanged 的​​模式?

转载 作者:行者123 更新时间:2023-12-04 12:24:53 30 4
gpt4 key购买 nike

我已经看到以下用于实现 INotifyPropertyChanged 的​​模式

private void NotifyPropertyChanged(string propertyName)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(propertyName));
}
}

public event PropertyChangedEventHandler PropertyChanged;

有人可以向我解释 的必要性吗? var handler = PropertyChanged 在检查 null 与直接检查之前分配 PropertyChanged == null 直接地?

谢谢

最佳答案

Eric Lippert 在这篇博客文章中详细解释了这一点:Events and races .

基本上,这个想法是为了避免竞争条件,以防在您检查 PropertyChanged != null 后另一个线程取消订阅此事件的最后一个处理程序。 ,但在您实际调用 PropertyChanged 之前.如果您制作处理程序的本地副本,则不会发生这种情况(但您最终可能会调用刚刚取消订阅的处理程序)

关于.net - 实现 INotifyPropertyChanged 的​​模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4461865/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com