WPF 通过 Switch.MS.Internal.EnableWeakEventMemoryImprovements 开关开启弱事件内存优化

WPF默认未启用弱事件内存优化,可通过设置Switch.MS.Internal.EnableWeakEventMemoryImprovements开关在.NET Framework 4.8或.NET Core 3.0以上版本实现优化。此开关影响WPF框架内部,如StaticPropertyChangedEventManager、ValueChangedEventManager等类的弱事件管理,但不影响业务功能。建议在项目中启用,以提高内存效率。
摘要由CSDN通过智能技术生成

默认的 WPF 为了保持行为兼容,没有开启弱事件的内存优化。可以在 WPF 中指定 Switch.MS.Internal.EnableWeakEventMemoryImprovements 和 Switch.MS.Internal.EnableCleanupSchedulingImprovements 开关来让 WPF 运行在 .NET Framework 4.8 或 .NET Core 3.0 以上版本时,自动开启弱事件内存优化。通过这个开关,将会更改部分行为,但是基本上不会有影响,因为影响的都是内存啥时候回收。这些开关和 WPF 应用所使用的开发版本无关,只和 WPF 应用所运行在的设备环境有关,如果在运行的设备上安装了 .NET Framework 4.8 版本,那么自动将会应用上,否则这个开关就和没有写一样

这个功能是在 .NET Framework 4.8 新建的,同时也在 .NET Core 3.0 中。在代码中开启的方法如下

打开 App.xaml.cs 文件,在构造函数添加下面代码

        public App()
        {
            AppContext.SetSwitch("Switch.MS.Internal.EnableWeakEventMemoryImprovements", true);
            AppContext.SetSwitch("Switch.MS.Internal.EnableCleanupSchedulingImprovements", true);
        }

在开启这个功能之后,影响的是 WPF 框架本身,通过开源的 WPF 框架源代码可以了解到,在 src\Microsoft.DotNet.Wpf\src\WindowsBase\

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值