睡眠(暂停)和恢复窗口的形式启动程序的工作线程,而不是主线程(Sleep(suspend) and

2019-09-17 06:42发布

Windows窗体我正在订购了Microsoft.Win32.SystemEvents.PowerModeChangedSuspend运行它的Close()的形式方法。 在Resume它运行Run()就像它的功能将在初始加载。 问题是,当计算机从睡眠模式中唤醒被触发名为“净SystemEvents”辅助线程当PowerModeChanged事件Run()被调用它再现了这个工作线程,而不是主线程的形式。

这种形式是我从另一个开发者继承了一个项目,我是新来的窗口形式的程序。 我想知道是否有更好的方法来处理休眠/唤醒的过程,而不是封闭的形式和重建他们唤醒或方式进行强制创建到主线程。 注:如果我删除代码,并把它一筹莫展的时候,电脑睡觉(悬浮)并没有什么,当它醒来(简历)然后程序继续正常工作(在主线程上运行)。 任何帮助将不胜感激。 感谢所有。

Answer 1:

捕捉静态字段UI线程的SynchronizationContext,以及Post()就可以返回到UI线程。



文章来源: Sleep(suspend) and Resuming windows form starts program on worker thread instead of main thread