- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 WPF 应用程序以大约 4kb/s 的速度泄漏内存。任务管理器中的内存使用量不断攀升,直到应用程序因“内存不足”异常而崩溃。
通过我自己的研究,我发现这里讨论了这个问题:Track down memory leak in WPF和 #8 在这里:http://blogs.msdn.com/jgoldb/archive/2008/02/04/finding-memory-leaks-in-wpf-based-applications.aspx
描述的问题是:
这是 WPF 中存在的漏洞,该漏洞存在于 .NET 3.5 SP1 及之前的框架版本中。这是因为 WPF 选择使用哪个 HWND 将消息从渲染线程发送到 UI 线程的方式。此示例销毁创建的第一个 HWND 并在新窗口中启动动画。这会导致从渲染线程发送的消息堆积而不被处理,从而有效地泄漏内存。
提供的解决方案是:
解决方法是首先在 App 类构造函数中创建一个新的 HwndSource。这必须在 WPF 创建任何其他 HWND 之前创建。只需创建此 HwndSource,WPF 将使用它从渲染线程向 UI 线程发送消息。这确保所有消息都将被处理,并且不会泄漏。
但我不明白解决方案!
我有一个正在使用的 Application 子类,我尝试在该构造函数中创建一个窗口,但这并没有解决问题。
按照字面上给出的说明,看起来我只需要将它添加到我的应用程序构造函数中:
new HwndSource(new HwndSourceParameters("MyApplication"));
最佳答案
修复:
应用程序.xaml.cs
class MyApp1 : Application
{
// ...
public Application()
{
new HwndSource(new HwndSourceParameters());
}
// ...
}
关于XP 上的 WPF 内存泄漏(CMilChannel、HWND),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1705849/
我的 WPF 应用程序以大约 4kb/s 的速度泄漏内存。任务管理器中的内存使用量不断攀升,直到应用程序因“内存不足”异常而崩溃。 通过我自己的研究,我发现这里讨论了这个问题:Track down m
我是一名优秀的程序员,十分优秀!