Перед выключением дождитесь окончания сохранения
У меня есть приложение, которое регистрирует некоторые пользовательские данные. Если пользователи выходят из рабочей станции, они должны сохранить эту информацию.
Программа представляет собой приложение 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();
}
}