在我的WPF应用程序运行时尝试按标准Windows 7注销按钮时,我收到“此程序阻止Windows注销”。我想迫使它关闭,而不必按“强制注销”。
同样,在(应用程序)任务管理器中按“结束任务”会导致它无响应,而不是仅关闭程序。
我已经尝试将此添加到Window_Closing,但似乎没有这样做:
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
Environment.Exit(0);
}
我是WPF的新手,但在我看来窗口没有正常关闭。如何在执行Windows注销时阻止“程序阻止Windows注销”,或者在从任务管理器中删除它时“程序没有响应”?
答案 0 :(得分:1)
如果您的应用程序没有响应从Windows发送的关闭事件,这应该只是一个问题。
如果您在UI线程上执行代码,这通常会发生,这会阻止它响应消息。因此,在结束事件和类似事件中放置一些东西将没有任何效果,因为在你的“工作”完成之后它们将无法处理。
处理此问题的正确方法是将您的工作转移到后台线程。这使应用程序保持响应,这使它能够响应从Windows到关闭的请求。