gpt4 book ai didi

c# - WPF WF4.5 Rehosted Designer 内存问题

转载 作者:行者123 更新时间:2023-12-03 10:43:41 24 4
gpt4 key购买 nike

我最近开发了一个 WPF 应用程序,它重新托管了一个带有一些自定义事件的工作流设计器。
在以下情况之后,我遇到了内存问题(Out Of Memory Exception):我打开了一个包含 150 多个事件的旧工作流,并开始修改所有事件(打开一个窗口,修改一些数据,保存并关闭窗口),直到发生异常。
在这个阶段,我的应用程序使用了 1.4 GB 的内存,所以我开始寻找解决方案。
知道我在我的应用程序中使用 MVVM,我正在使用数据和命令绑定(bind),我的 View 使用在 Metro mahapps 窗口中定义的 window.close() 命令正确关闭。

我使用 ANTS Memory Profiler 查找泄漏源,并在我的应用程序内存使用量为 1.35 GB 时拍摄了内存快照。
经分析,内存中保存的实例为 System.Byte[] 类型,GC root 的路径为:
System.Byte[] ==> System.IO.MemoryStream ==> System.Windows.Baml2006.SharedStream ==> System.Windows.Baml2006.BamlBinaryReader ==> System.Windows.Baml2006.Baml2006Reader ==> System.Windows。 ResourceDictionnary ==> System.Windows.ResourceDictionnary[] ==> 列表 ==> ResourceDictionaryCollection ==> ResourceDictionary ==> System.Windows.EffectiveValueEntry[] ==> MyView

我真的很感谢你的帮助。谢谢。

最佳答案

我在 .net 4.0 项目中遇到过这个问题。那时,这是 Workflow Designer 的一个已知问题。我原以为这个问题已经在 .net 4.5 中解决了,但也许这个旧的解决方案可能会有一些用处。

以下link允许您在其自己的应用程序域中编码工作流设计器。因此,它有效地允许您使用 AppDomain 隔离 WPF 加载项加载设计器。

这无疑消除了我们重新托管的解决方案中发生的内存泄漏问题。

关于c# - WPF WF4.5 Rehosted Designer 内存问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39128214/

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