在我的.NET 4.0上的WPF应用程序中,我让用户报告两个看似非常间歇性的错误,我无法处理.下面,我发布消息和堆栈跟踪的最顶行.如果需要,我可以发布完整的堆栈跟踪.
Message: {Desktop composition is disabled} The operation could not be completed because desktop composition is disabled. (Exception from HRESULT: 0x80263001)
StackTrace: at Standard.NativeMethods.DwmExtendFrameIntoClientArea(IntPtr hwnd, MARGINS& pMarInset)
Message: Insufficient memory to continue the execution of the program.
StackTrace: at System.Windows.Media.Composition.DUCE.Channel.SyncFlush()
Run Code Online (Sandbox Code Playgroud)
谷歌并没有证明是非常有帮助的,所以我希望也许你们之前见过它们.
Tri*_*ror 12
我终于能够确定问题 - 图形适配器驱动程序.
这后,随着这一个让我看着办吧.基本上,发生的事情是我有4个用户(大约600个)遇到了问题.他们还报告说,他们的屏幕会随机闪烁,有些报道"任务栏变得坚固".这就是导致DWM组合错误的原因,显然如果他们有多个运行的程序正在密集使用显卡,那么内存就会耗尽.
我测试使用Geeks3d.com FurMark基准测试程序来最大化显卡然后启动我的应用程序.它会在打开时崩溃并抛出outofmemory异常,所以我知道这不是内存泄漏.
更新驱动程序后,我无法生成崩溃...即使有多个程序和FurMark全速运行.
希望这可以帮助有人在路上.
第一个错误与您在WPF窗口中使用的Aero Glass样式有关。当用户关闭Glass主题(并使用基本主题)时,这些Glass方法DwmExtendFrameIntoClientArea会失败。因此,您需要检查是否启用了Desktop Window Manager(DWM)合成:
[DllImport("dwmapi.dll", PreserveSig = false)]
public static extern bool DwmIsCompositionEnabled();
Run Code Online (Sandbox Code Playgroud)
第二个问题似乎是一个不受管理的错误。在另一个非常相似的问题上检查这个非常详尽的答案:https : //stackoverflow.com/a/1965382/1255010
| 归档时间: |
|
| 查看次数: |
7559 次 |
| 最近记录: |