Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从计时器终止WPF应用程序_C#_Wpf_Multithreading - Fatal编程技术网

C# 从计时器终止WPF应用程序

C# 从计时器终止WPF应用程序,c#,wpf,multithreading,C#,Wpf,Multithreading,我有一个System.Threading.Timer正在运行以检查会话是否有效。如果WPF应用程序的会话被确定为结束,那么我想从外部源关闭该应用程序 当尝试Application.Current.Shutdown()或其他一些类似的变体时,我会遇到异常,因为它显然试图从一个不拥有它的线程结束应用程序。我不确定处理此问题的最佳方法,也不确定是否有人有过类似的实现或想法。试着这样做: Application.Current.Dispatcher.Invoke(new Action(() =>

我有一个System.Threading.Timer正在运行以检查会话是否有效。如果WPF应用程序的会话被确定为结束,那么我想从外部源关闭该应用程序


当尝试
Application.Current.Shutdown()
或其他一些类似的变体时,我会遇到异常,因为它显然试图从一个不拥有它的线程结束应用程序。我不确定处理此问题的最佳方法,也不确定是否有人有过类似的实现或想法。

试着这样做:

Application.Current.Dispatcher.Invoke(new Action(() => Application.Current.Shutdown()));

试着这样做:

Application.Current.Dispatcher.Invoke(new Action(() => Application.Current.Shutdown()));

我不确定具体细节,但我认为您必须
调用主线程上的方法。如果您感觉Rambunciousi不确定具体细节,您可以从计时器中终止进程,但是我认为你必须调用主线程上的一个方法。如果你感觉不正常,你可以从计时器中终止进程,或者简单的
Application.Current.Dispatcher.InvokeShutdown()
或者简单的
Application.Current.Dispatcher.InvokeShutdown()