当特定事件触发时,如何使WPF
应用程序空闲?
void SystemEvents_SessionSwitch(object sender, Microsoft.Win32.SessionSwitchEventArgs e)
{
if (e.Reason == SessionSwitchReason.SessionLock) {
//make application idle
}
else if (e.Reason == SessionSwitchReason.SessionUnlock) {
//run the app again
}
}
我有这样的代码,当用户锁定Windows时,如果条件被触发,当他解锁时,其他人会被解雇。
有人可以建议我使应用程序空闲并再次运行它的代码吗?
答案 0 :(得分:0)
您无法在Windows中使应用程序“空闲”。您可以使用Thread.Suspend方法暂停应用程序线程,但是至少需要运行其中一个线程(即主线程)才能使应用程序恢复其他线程。
暂停和恢复线程不是一个好主意。智能地暂停和恢复应用程序正在执行的任务将是一个更好的解决方案。例如,如果您的应用程序正在播放视频,您应该找到一种干净的方式来暂停视频控制并在需要时恢复视频。挂起和恢复线程可能会产生意外行为和糟糕的用户体验。