休眠(挂起)和恢复Windows窗体在辅助线程而不是主线程上启动程序 [英] Sleep(suspend) and Resuming windows form starts program on worker thread instead of main thread
本文介绍了休眠(挂起)和恢复Windows窗体在辅助线程而不是主线程上启动程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
Microsoft.Win32.SystemEvents.PowerModeChanged
,在Suspend
上运行Close()
方法。在Resume
上,它像在初始加载时一样运行Run()
函数。问题是,当计算机从睡眠模式中唤醒时,PowerModeChanged事件在名为".Net SystemEvents"的工作线程上触发,并且当Run()
被调用时,它在该工作线程而不是主线程上重新创建窗体。
此窗体是我从另一位开发人员那里继承的项目,我对Windows窗体编程是新手。我想知道是否有更好的方法来处理休眠/唤醒过程,而不是关闭窗体并在唤醒时重新创建它们,或者是否有一种方法将创建强制到主线程上。注意:如果我删除代码,并让它在计算机休眠(挂起)和唤醒(恢复)时什么都不做,那么程序将继续正常工作(在主线程上运行)。任何帮助都将不胜感激。谢谢大家。
推荐答案
在静态字段中捕获UI线程SynchronizationContext,并在其上Post()
返回到UI线程。
这篇关于休眠(挂起)和恢复Windows窗体在辅助线程而不是主线程上启动程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文