c# - WPF 和 Windows 10 崩溃

标签 c# wpf windows crash

我们有一个 WPF 应用需要在不同的用户登录和注销各自的 PC 的情况下保持打开更长时间(过夜)。

[更新] WPF 应用程序使用此处的单实例技术:http://blogs.microsoft.co.il/blogs/arik/SingleInstance.cs.txt 单实例功能不是错误的原因

只有在以下情况下才会发生奇怪的崩溃:

  1. 操作系统是 Windows 10

  2. 必须执行以下用户登录/注销序列:

帐户 A 正在启动应用程序并注销或锁定 PC。 帐户 B 在夜间登录,在 PC 上工作了一段时间,然后注销。 A号早上再次登录。该应用程序运行但 UI 被卡住/最小化。单击/尝试调整大小时,出现以下错误:

   System.OutOfMemoryException: Insufficient memory to continue the execution of the program.
   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 System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)

我已经查看了这些帖子

我尝试了上述帖子中的建议,但没有成功。

此外,我无法始终如一地重现该问题。似乎在登录之间需要经过一些时间才能出现问题。

感谢您提出的任何建议。

最佳答案

似乎这是已知的 WPF 错误:https://github.com/dotnet/wpf/issues/439 2020 年 6 月 3 日还没有解决方案。

关于c# - WPF 和 Windows 10 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40358006/

相关文章:

asp.net - 以域普通用户身份调试 Dot Net 网站

windows - 在 Eclipse(或一般的 Windows GUI 宏工具)中是否有加速重复提交的热键?

c# - MVC - 使用 RedirectToAction() 传递数据

c# - WPF 突出显示验证失败的选项卡标题

mysql - 我应该如何将 DataTable 转换为分配给 DataGrid.ItemsSource?

c# - XAML控件使用“可见性”类型而不是普通“ bool ”的实际原因是什么?

wpf - WinAppDriver - 如何获取元素上可用的属性列表

c# - Gstreamer 单声道开发人员

c# - 测试 Entity Framework 5 - 内存数据库是一个不错的选择

c# - ConfigurationManager.GetSection 返回 null