我有一个运行的System.Threading.Timer来检查会话是否有效。如果确定WPF应用程序的会话已经结束,那么我想关闭该应用程序。
在尝试Application.Current.Shutdown()
或其他一些类似的变体时,我会遇到异常,因为它显然是试图从不拥有它的线程结束应用程序。我不确定处理此问题的最佳方法,并寻找任何类似的实现或想法。
答案 0 :(得分:4)
尝试这样做:
Application.Current.Dispatcher.Invoke(new Action(() => Application.Current.Shutdown()));