- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 WinForm 应用程序有挂起问题。发生的情况是,客户有时会让应用程序运行一整夜,而当他们早上回来时,应用程序通常处于挂起状态。这是我在主线程的转储文件中看到的。我不明白的是什么可以调用 SystemEvents.OnUserPreferenceChanged 事件,尽管我不认为我正在做任何调用此事件的事情。
0024e480 770496f4 System.Threading.WaitHandle.WaitOneNative(Microsoft.Win32.SafeHandles.SafeWaitHandle, UInt32, Boolean, Boolean)
0024e52c 702c68af System.Threading.WaitHandle.WaitOne(Int64, Boolean)
0024e548 702c6865 System.Threading.WaitHandle.WaitOne(Int32, Boolean)
0024e55c 6e891a6f System.Windows.Forms.Control.WaitForWaitHandle(System.Threading.WaitHandle)
0024e570 6ebcd6eb System.Windows.Forms.Control.MarshaledInvoke(System.Windows.Forms.Control, System.Delegate, System.Object[], Boolean)
0024e610 6e8933cc System.Windows.Forms.Control.Invoke(System.Delegate, System.Object[])
0024e644 6eac0c83 System.Windows.Forms.WindowsFormsSynchronizationContext.Send(System.Threading.SendOrPostCallback, System.Object)
0024e65c 6fe1eed2 Microsoft.Win32.SystemEvents+SystemEventInvokeInfo.Invoke(Boolean, System.Object[])
0024e690 6fe1d07f Microsoft.Win32.SystemEvents.RaiseEvent(Boolean, System.Object, System.Object[])
0024e6dc 6fe1e38f Microsoft.Win32.SystemEvents.OnUserPreferenceChanged(Int32, IntPtr, IntPtr)
0024e6fc 6fa64c29 Microsoft.Win32.SystemEvents.WindowProc(IntPtr, Int32, IntPtr, IntPtr)
0024e700 000a1104 [InlinedCallFrame: 0024e700]
0024e8d8 6e378d5e System.Windows.Forms.Application+ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32, Int32, Int32)
0024e974 6e3789c7 System.Windows.Forms.Application+ThreadContext.RunMessageLoopInner(Int32, System.Windows.Forms.ApplicationContext)
0024e9c8 6e378811 System.Windows.Forms.Application+ThreadContext.RunMessageLoop(Int32, System.Windows.Forms.ApplicationContext)
0024e9f8 6e88de47 System.Windows.Forms.Application.RunDialog(System.Windows.Forms.Form)
0024ea0c 6e8c25cb System.Windows.Forms.Form.ShowDialog(System.Windows.Forms.IWin32Window)
0024ea98 6e8c27e3 System.Windows.Forms.Form.ShowDialog()
0024ea9c 56c26e76 MyNameSpace.MyForm.MyMethod2(Object, Boolean, Boolean, System.Guid, Boolean)
0024eba0 56c26c47 MyNameSpace.MyForm.MyMethod1(System.Guid, System.Guid, System.Guid, Boolean)
0024ecf8 56c91f4c MyNameSpace.MyForm.MyButton_Click(System.Object, System.EventArgs)
0024ee88 6e334180 System.Windows.Forms.Control.OnClick(System.EventArgs)
最佳答案
控件订阅此事件,以便在用户更改主题或系统颜色时重新绘制它们自己。当您不靠近机器并且 Windows 自动锁定工作站时,也会触发此事件。这解释了宿醉后的早晨。
死锁是由线程问题引起的,SystemEvents 类在错误的线程上触发事件。这是由程序中的初始化问题引起的。典型的触发器不是在主线程上创建第一个窗口,这会混淆 SystemEvents。它试图再次在同一个线程上触发一个事件,但它不再存在了。或者它在 Winforms 初始化之前复制了 SynchronizationContext.Current。无论哪种方式,该事件都将在线程池线程而不是主 UI 线程上触发。那是致命的。
例如,当您实现自己的启动画面时很常见。使用 built-in support相反。
关于c# - 如何处理这个 C# 挂起 invloving SystemEvents.OnUserPreferenceChanged,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8314233/
我在.NET 4.5上有一个C#Windows窗体应用程序。 该应用程序连接到USB设备。 我想同时支持多个 session 。 为此,我需要在 session 锁定时从该设备断开连接,以允许新 se
我正在尝试想出一种方法来引发可以被多个应用程序看到的公共(public)事件。首先想到的是 SystemEvents。 有没有一种方法可以“定义”一个新的 SystemEvent,甚至是一个多个应用程
我有一个 WinForms 应用程序,它跟踪系统何时进入挂起状态( sleep )和何时恢复。应用程序使用 SystemEvents为此目的的类。它在我的机器上运行良好。然而,对于某些用户来说,事件似
我遇到过a question在此站点上,提到触发 SystemEvents.UserPreferenceChanged 事件时 UI 挂起的可能性。现在,我还没有在我的应用程序中遇到过这种情况,但我想
我遇到过a question在此站点上,提到触发 SystemEvents.UserPreferenceChanged 事件时 UI 挂起的可能性。现在,我还没有在我的应用程序中遇到过这种情况,但我想
我需要创建一个 RichTextBox 子类,除了不订阅 UserPreferenceChanged 之外,它在所有方面都以相同的方式工作。此事件导致我的应用程序挂起。我必须使用 RichTextBo
我在我的 Windows 应用程序中使用事件 SystemEvents.TimeChanged,它触发了两次。我使用的代码: using System; using Microsoft.Win32;
想象一下,我正在创建一个应用程序来测量某个用户登录计算机的时间(我正在编写的实际应用程序是不同的,但这并不重要)。 我需要跟踪用户何时登录、退出、何时挂起计算机(“关闭”菜单中的“待机”选项)以及计算
我正在使用 SystemEvents.SessionSwitch 事件来确定运行我的进程的用户是否被锁定,但该事件不会让您知道哪个用户被锁定/解锁。我怎样才能得到这个信息(从一个低特权用户拥有的进程)
我想要什么 每当 Windows 中的时区更改时,我都想做一些事情。 到目前为止我有什么 为此,我实现了事件 SystemEvents.TimeChanged,如下所示: 在构造函数中: System
我编写了这个简单的控制台应用程序来测试当我们使用设置日期时间窗口在 Windows 7 上手动更改时区时是否触发 timechange 事件?答案是肯定的,它触发了,但我正在打印当前时间,但显示不正确
我在非托管 WinAPIs 环境中使用 C++ 进行编码。 最佳答案 您正在寻找 WM_ENDSESSION 窗口消息 http://msdn.microsoft.com/en-us/library/
我的 WinForm 应用程序有挂起问题。发生的情况是,客户有时会让应用程序运行一整夜,而当他们早上回来时,应用程序通常处于挂起状态。这是我在主线程的转储文件中看到的。我不明白的是什么可以调用 Sys
我一直在处理客户端安装中的一个奇怪的应用程序挂起问题。在尝试了几件事之后,我得出的结论是,如果没有转储,它就无法工作。所以我在挂起时间从我的一位客户那里转储。我必须指出,它只发生在我的安装中,而不发生
我正在开发一个 VSTO 应用程序级 Word AddIn 和一个 WPF 应用程序,这两个应用程序都需要在系统进入休眠状态并随后恢复时得到通知。我已将我的事件处理程序绑定(bind)到每个应用程序中
我是一名优秀的程序员,十分优秀!