我在我的应用程序中遇到此异常。 我找到了在网络上讨论它的链接,但没有说明如何跟踪它和/或解决它。
请不要回复来自互联网的链接。 请回复跟踪来源的策略。 如果找到,请回复一些解决方法。
Source: PresentationCore
Message: Exception from HRESULT: 0x88980406
Stack Trace:
at System.Windows.Media.Composition.DUCE.Channel.SyncFlush()
at System.Windows.Interop.HwndTarget.UpdateWindowSettings(Boolean enableRenderTarget, Nullable`1 channelSet)
at System.Windows.Interop.HwndTarget.UpdateWindowPos(IntPtr lParam)
at System.Windows.Interop.HwndTarget.HandleMessage(WindowMessage msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Interop.HwndSource.HwndTargetFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
答案 0 :(得分:8)
这已经过时了,但无论如何我都会回答,因为我遇到了与我刚解决的问题相同的问题。https://stackoverflow.com/a/18003004/1415307
基本上,我对此错误的问题归结为过时的视频卡驱动程序。更新到最新的驱动程序后,问题已得到解决。
答案 1 :(得分:6)
在我的情况下,事实证明,有问题的应用程序已经压低了其所用硬件的内存限制。无论何时我添加了使用相当数量内存的代码,都会突然出现。
当我实现了一个在另一个线程上处理图像缓冲区的功能时,我最终使用了MemoryFailPoint机制。
http://msdn.microsoft.com/en-us/library/system.runtime.memoryfailpoint.aspx
首次实施诀窍但经过多次尝试QA引发了OOM炸弹。 所以我用GC.Collect()循环实现了一个MemoryFailPoint()(我知道hackish ......但有时......完成了)。
我学到的主要是...... a)这是WPF中一个非常糟糕的错误。 b)如果你真的消耗了过多的记忆,你只需要担心它。
答案 2 :(得分:1)
在微软的出色帮助下,我们刚刚解决了困扰我们超过一年的SyncFlush问题。事实证明,我们在本机代码中创建了多媒体计时器,但我们并没有每次都释放它们。更具体地说,我们调用了timeBeginPeriod和timeEndPeriod,但是我们调用的次数比end更多,因此会造成资源泄漏。 WPF渲染线程需要使用那些计时器,但我们耗尽了它们的有限供应(可能是65k)。结果是渲染线程停止渲染并挂起或导致崩溃。注意计时器!