Перед выключением дождитесь окончания сохранения

У меня есть приложение, которое регистрирует некоторые пользовательские данные. Если пользователи выходят из рабочей станции, они должны сохранить эту информацию.

Программа представляет собой приложение Windows Form 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);

1 ответ

Решение

Найденный ответ выключение будет остановлено, только если форма все еще видна. Это был не тот случай. Поэтому я решил это, делая это.

    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();
        }
    }
Другие вопросы по тегам