You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WPF启动时Dispatcher处理暂停异常排查求助(无有效堆栈)

问题描述

我们有一款运行超10年的WPF应用,近期在部分部署机器启动时出现异常:主窗口加载并完成部分数据加载后,会触发大量错误。若主窗口最终打开,应用后续运行正常。

异常堆栈信息

System.InvalidOperationException: Dispatcher processing has been suspended, but messages are still being processed.
   at System.Windows.Threading.Dispatcher.WndProcHook(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 System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)

该堆栈无用户代码信息,无法定位问题。已知这类问题通常需要用Application.Current.Dispatcher.BeginInvoke()或MVVMLight的DispatcherHelper.CheckBeginInvokeOnUI处理,但因无有效堆栈,排查十年代码效率极低。

应用基本信息

-.NET Framework 4.8 / WPF / 适配Windows 10 & 11
-仓库/客服专用定制物流软件
-使用Xceed Data Grid、SmithHtmlEditor、MVVMLight组件
-依赖Microsoft.Mshtml.DLL处理HTML
-多年无重大更新

异常发生环境

-ClickOnce部署
-涉及Windows 10/11系统
-.NET Framework版本包含4.8.9166.0及其他版本
-有无杀毒软件的机器均出现异常
-多在启动后不久触发,至少出现10次错误
-开发机器无法复现

已完成的排查动作

-配置Application_DispatcherUnhandledException和TaskScheduler_UnobservedTaskException跟踪错误
-代码中添加Application.Current.Dispatcher.VerifyAccess()检查,均通过
-搜索发现其他用户遇到该异常时均有包含用户代码的有效堆栈

怀疑是近期Windows更新导致问题,但故障机器为远程非开发机,排查难度大,寻求可行的排查方案。

内容的提问来源于stack exchange,提问作者Simon_Weaver

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 11:42:11