【发布时间】:2016-02-25 00:23:27
【问题描述】:
嗯,我注意到了一个奇怪的错误。这发生在调整大小时。
我在尝试修复我的 xaml 对齐时首先注意到它。当我尝试 在我的 2 个屏幕上调整窗口大小,令人敬畏的内容开始闪烁,突然内容消失,出现带有徽标的红屏,在 vshost32.exe 之后不久 坠毁。
我想得很好.. 好吧,它可能有一些宽度限制,所以我将窗口的 MaxWidth 限制在主屏幕的宽度上。我在尝试水平调整大小时也注意到了一些闪烁,但仅此而已,但是当我向调整大小发送垃圾邮件并多次更改高度和宽度时,在 maxheight 1080 和 max width 1920 上出现了相同的问题。
Edit2 附加信息: 我在同一个 XAML 上有 2 个 WebControl。 当我添加多个并调整大小时... 第一秒就崩溃了。
编辑 (1)
[1123/013232:INFO:(0)] WebCore is now online.
[1123/013232:INFO:(0)] Running Awesomium 1.7.5.1
[1123/013247:WARNING:Awesomium.NET(0)] System.OutOfMemoryException: Insufficient memory to continue the execution of the program.
at System.Windows.Media.Imaging.WriteableBitmap..ctor(Int32 pixelWidth, Int32 pixelHeight, Double dpiX, Double dpiY, PixelFormat pixelFormat, BitmapPalette palette)
at Awesomium.Windows.Controls.WebViewPresenter.Awesomium.Core.ISurface.Initialize(IWebView view, Int32 width, Int32 height)
at Awesomium.Core.Surface.oQVs2ZKQlyYpFHm4aaM(Object , Object , Int32 width, Int32 height)
at Awesomium.Core.Surface.InitializeDirector(IWebView view, Int32 width, Int32 height)
at Awesomium.Core.Surface..ctor(IWebView view, Int32 width, Int32 height, ISurface surfaceImpl)
at Awesomium.Core.SurfaceFactory.Nu5RdsobJP(IntPtr , Int32 , Int32 )
at Awesomium.Core.NativeMethods.WebCore_Update(HandleRef jarg1)
at Awesomium.Core.WebCore.UpdateThunk()
[1123/013247:ERROR:ipc_channel_win.cc(261)] pipe error: 109
在我看来,这里有一些内存泄漏。
在浪费了 2 GB 的 RAM 之后,它就会崩溃。
使用 8.5 GB 的 Ram 进行了尝试,升到 10.5 然后崩溃了。
我进行了一些测试以找出导致此错误的原因。 我创建了一个循环,它将每 50 毫秒以 2 个宽度和高度调整窗口的大小
public async void testc() {
for (int i = 0; i <= 1000; i++)
{
this.Width = 1700 + i % 2;
this.Height = 950 + i % 2;
await Task.Delay(50);
}
}
正如预期的那样再次崩溃,但有趣的是,当我在循环中附加时
WebControl.Reload(true);
它实际上并没有崩溃...内存从 350 MB 上下波动
有没有办法在调整大小时阻止渲染?
【问题讨论】:
-
似乎是 Awesomium 中的一个错误。我会创建一个非常小的示例来重现问题并将其提交给他们的错误跟踪器。
-
Awesomium 似乎已经被废弃一年了。
-
answers.awesomium.com 的社区似乎充满活力。我会尝试在那里发帖。看起来像是旧版本的 Stack Overflow 引擎。
-
我已经发过了,没有回复
-
你可能想把它链接到这里..
标签: c# wpf memory-leaks awesomium