嗯,我注意到一个奇怪的错误。这发生在调整大小时。
我第一次注意到它是在尝试修复我的 xaml 对齐方式时。当我尝试 在我的 2 个屏幕上调整窗口大小 awesomium 内容开始闪烁,突然内容消失,出现带有 Logo 的红屏,紧接着 vshost32.exe 坠毁。
我觉得不错.. 好吧,它可能有一些宽度限制,所以我将窗口的 MaxWidth 限制在主屏幕的宽度上。当我试图水平调整它的大小时,我也注意到了一些闪烁,但仅此而已,但是当我发送垃圾邮件调整大小并多次更改高度和宽度时,同样的问题发生在最大高度 1080 和最大宽度 1920 上。
Edit2 附加信息: 我在同一个 XAML 上有 2 个 WebControl。 当我添加多个并调整大小时... 它在第一秒就崩溃了。
编辑(一)
[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 的 Wasted 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 上下波动
有没有办法在调整大小时阻止渲染?
最佳答案
认为只有在控件完全初始化并显示后才能调整大小。恕我直言位图
at System.Windows.Media.Imaging.WriteableBitmap..ctor(Int32 pixelWidth, Int32 pixelHeight, Double dpiX, Double dpiY, PixelFormat pixelFormat, BitmapPalette palette)
大小为零或无效。
我以前用过Awesomium,我的建议是迁移到CefSharp
关于c# - Awesomium.NET 在调整大小时崩溃 - 内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33861843/