App.Current.Shutdown() работает асинхронно. Это означает, что при вызове этого метода вы не защищены от выполнения строк кода, которые следуют за вызовом Shutdown().Как синхронизировать приложение WPF?
Итак, вопрос заключается в том, как заблокировать поток, из которого вызывается App.Current.Shutdown()?
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
App.Current.Shutdown();
File.WriteAllText(@"..\log.txt", "Info");
}
}
private void App_OnExit(object sender, ExitEventArgs e) {
Thread.Sleep(3500);
}
File.WriteAll создаст новый файл и напишет в него строку «Информация».
Метод 'Shutdown' должен всегда вызываться из главной темы. И я думаю, 'Shutdown' должен заморозить основной поток. Вы видите другое поведение? Не могли бы вы показать свой код и рассказать нам больше, чего вы пытаетесь достичь? – outcoldman