Application.Actuel.Shutdown() par rapport à l'Application.Actuel.Répartiteur.BeginInvokeShutdown()

D'abord un peu de contexte: j'ai une application WPF, qui est l'interface front-end pour un héritage Win32 application. L'héritage application s'exécute en tant que DLL dans un thread séparé. Les commandes de l'utilisateur choisit dans l'INTERFACE utilisateur sont invoquées lors que "l'héritage du fil".

Si la "héritage thread" finitions, la GUI-frontal ne peut rien faire de plus utile, j'ai donc besoin d'arrêter le WPF application. Par conséquent, à la fin du thread de la méthode, je l'appelle Application.Current.Shutdown().

Depuis que je ne suis pas sur le thread principal, j'ai besoin d'invoquer cette commande. Cependant, j'ai remarqué que le Répartiteur a également BeginInvokeShutdown() à l'arrêt du répartiteur. Donc ma question est: Quelle est la différence entre l'invocation

Application.Current.Shutdown();

et de l'appel de

Application.Current.Dispatcher.BeginInvokeShutdown();

OriginalL'auteur Daniel Rose | 2010-05-28