Dev*_*ian 7 c# wpf memory-leaks awesomium
好吧,我注意到一个奇怪的错误.这在调整大小时会发生.
当我试图修复我的xaml对齐时,我首先注意到了它.当我尝试在我的2个屏幕上调整窗口大小时,awesomium内容开始闪烁,突然内容消失,带有徽标的红屏出现,在vshost32.exe崩溃后缩短.
我认为好..好吧它可能有一些宽度限制所以我限制了主屏幕宽度上窗口的MaxWidth.我注意到一些flickerings藏汉而我试图水平调整大小,但仅此而已,但是当我垃圾邮件的大小调整和改变了许多倍的高度和宽度上maxheight 1080和最大宽度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
Run Code Online (Sandbox Code Playgroud)
在我看来,这里有一些meory泄漏.
在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);
}
}
Run Code Online (Sandbox Code Playgroud)
它按预期再次坠毁,但有趣的是,当我在循环中附加时
WebControl.Reload(true);
Run Code Online (Sandbox Code Playgroud)
它实际上没有崩溃......内存从350 MB上下起伏
反正调整时是否有防止渲染的问题?
小智 0
认为只有在控件完全初始化并显示后才能调整大小。恕我直言,位图
at System.Windows.Media.Imaging.WriteableBitmap..ctor(Int32 pixelWidth, Int32 pixelHeight, Double dpiX, Double dpiY, PixelFormat pixelFormat, BitmapPalette palette)
Run Code Online (Sandbox Code Playgroud)
大小为零或无效。
我过去使用过 Awesomium,我的建议是迁移到 CefSharp