通过代码结束WPF程序

最基本的结束应用程序的方法:首先拿到Application.Current 静态实例(单例)
// Programmatically shut down app
Application.Current.Shutdown();

但是通常还会有其他两个常见情景

  1. 处于其他线程时想要结束程序
    Application.Current.Dispatcher.Invoke(() => Application.Current.Shutdown());
    await InvokeAsync 似乎行为和奇怪,不知道为什么不行。

  2. Application还未初始化时
    在Startup里结束不了程序,直接return好了

其他

Dispatcher 中的 Application.Current.Dispatcher.InvokeShutdown() 这个是关闭dispatcher上下文的,不要搞混。

CaliburnMicro.BootstrappeBase 中提供的Application实例,不要和WPF的搞混,
Application.Shutdown()
Application.Dispatcher.InvokeShutdown()

你可能感兴趣的:(通过代码结束WPF程序)