我的 WindowsForms 应用程序使用 WCF 服务来发送信息以存储在我的服务器上。当 Windows 启动并且用户登录时,它开始工作。但是当用户关闭操作系统时,Windows(操作系统)会向用户显示一个“结束任务窗口”来结束我的应用程序的任务。
- 为什么 windows 会显示“结束任务窗口”?
- 我该如何处理?
您正在寻找SystemEvents.SessionEnding
活动。您可能还需要取消任何正在进行的 WCF 查询。
如果您已经处理了这是您的From.Closing
事件,则可以改用 MSDN 中的以下代码段:
private static int WM_QUERYENDSESSION = 0x11;
private static bool systemShutdown = false;
protected override void WndProc(ref System.Windows.Forms.Message m)
{
if (m.Msg == WM_QUERYENDSESSION)
{
systemShutdown = true;
}
// If this is WM_QUERYENDSESSION, the closing event should be
// raised in the base WndProc.
base.WndProc(ref m);
}
然后在您的Form.Closing
处理程序中,您可以决定如何处理即将发生的系统关闭事件。