gpt4 book ai didi

android - PropertyChangedEventHandler 导致内存泄漏

转载 作者:行者123 更新时间:2023-11-29 01:27:39 24 4
gpt4 key购买 nike

我在 xamarin.forms 中创建了 Android 应用程序,但问题是 PropertyChangedEventHandler 导致内存泄漏。

我的代码:

 protected virtual void OnPropertyChanged(string propertyName)
{
PropertyChangedEventHandler handler = PropertyChanged;

if (handler != null)
try {
handler(this, new PropertyChangedEventArgs(propertyName));
} catch (Exception ex)
{

}

}

我在 xamarin.profiler 中测试内存应用程序,结果是:

enter image description here

最佳答案

看来您的实现很可靠。在 C# 6 中调用事件的另一种线程安全方式是:

    public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged( string propertyName )
{
PropertyChangedEventArgs e = new PropertyChangedEventArgs( propertyName );
PropertyChanged?.Invoke( this, e );
}

我猜事件订阅逻辑可能是罪魁祸首。请记住,事件发布者让他们的订阅者保持活力。这是一篇关于事件订阅和潜在内存泄漏的好文章。 Understanding and Avoiding Memory-Leaks

关于android - PropertyChangedEventHandler 导致内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33033269/

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