关机前等到保存完成

Before Shutdown wait till saving is finished

我有一个记录一些用户数据的应用程序。如果用户注销工作站,则需要保存此信息。

该程序是一个 windows 形式的 c# 应用程序。

目前我正在尝试通过下面的这个功能来做到这一点,它可以达到 95%,但不能达到 100%。

    Application.Run(new Shutdown(_object));

    private void Shutdown_FormClosing(object sender, FormClosingEventArgs e)
    {
        e.Cancel = true;``
        _object.LogLogout(); //Save the logout to a file

    }

我也尝试了这个功能,但是根本没有用。我不明白为什么。有什么提示吗?我完全被困在这里了。

    Microsoft.Win32.SystemEvents.SessionEnded += new Microsoft.Win32.SessionEndedEventHandler(SystemEvents_SessionEnded);
    Microsoft.Win32.SystemEvents.SessionEnding += new Microsoft.Win32.SessionEnding(SystemEvents_SessionEnding);

找到答案 shut-down 只有在表单仍然可见时才会停止。事实并非如此。因此我通过这样做解决了这个问题。

    private void Shutdown_FormClosing(object sender, FormClosingEventArgs e)
    {
        if (systemShutdown)
        {
            this.Show();
            //If GUI got closed delted active entry and log off
            _object.LogLogout(); //Save the logout to a file
            Thread.Sleep(100);
            this.Hide();
        }
    }