我正在处理的 Windows 窗体订阅Microsoft.Win32.SystemEvents.PowerModeChanged
and on Suspend
它运行Close()
表格上的方法。在Resume
它运行Run()
功能就像初始加载时一样。问题是,当计算机从睡眠模式唤醒时,名为“.Net SystemEvents”的工作线程上会触发 PowerModeChanged 事件,并且当Run()
被称为它在此工作线程而不是主线程上重新创建表单。
这个表单是我从另一个开发人员继承的项目,我是 Windows 表单编程的新手。我想知道是否有更好的方法来处理睡眠/唤醒过程,而不是关闭表单并在唤醒时重新创建它们,或者强制创建到主线程上。注意:如果我删除代码并让它在计算机睡眠(挂起)时不执行任何操作,并且在计算机唤醒(恢复)时不执行任何操作,则程序将继续正常工作(在主线程上运行)。任何帮助将不胜感激。谢谢大家。
在静态字段中捕获 UI 线程 SynchronizationContext,并且Post()
返回到 UI 线程。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)