Point 1:检查Static事件
UserControl或Page中引用了全局事件,不再使用时,需要立即释放掉。
例全局事件:
public class WQEvents
{
public static event DelegateMethod<SettingEventArgs> OnSettingChanged;
public static void DoSettingChanged(SettingEventArgs args)
{
if (OnSettingChanged != null && args != null)
OnSettingChanged(args);
}
}
调用时,比较好的习惯:
private void UserControl_Unloaded(object sender, RoutedEventArgs e)
{
WQEvents.OnSettingChanged -= WQEvents_OnSettingChanged;
}
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
WQEvents.OnSettingChanged -= WQEvents_OnSettingChanged; // 避免多次附加事件
WQEvents.OnSettingChanged += WQEvents_OnSettingChanged;
}
Point2:合理使用资源
假若需要用图片作为背景图,不推荐直

本文介绍了五个关键点来优化WPF程序的性能,防止OutOfMemory问题。包括检查并及时释放Static事件、合理使用资源如使用ImageBrush而非Image作为背景、正确管理和释放Timer、及时解除事件监听以及谨慎处理Window对象。通过这些实践,可以显著减少内存消耗,提高应用稳定性。
最低0.47元/天 解锁文章
217

被折叠的 条评论
为什么被折叠?



