0

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 时,如果条件被触发,当他解锁时,它会被触发。

有人可以建议我让应用程序空闲并再次运行它的代码吗?

4

1 回答 1

0

您不能在 Windows 中使应用程序“空闲”。您可以使用Thread.Suspend方法使应用程序线程挂起,但您至少需要一个线程(即主线程)运行,以便应用程序恢复其他线程。

不过,暂停和恢复线程并不是一个好主意。智能地暂停和恢复应用程序正在执行的任务将是一个更好的解决方案。例如,如果您的应用程序正在播放视频,您应该找到一种简洁的方法来暂停视频控件并在需要时恢复视频。暂停和恢复线程可能会产生意外行为和糟糕的用户体验。

于 2012-06-06T11:49:33.927 回答