Comment puis-je obtenir le thread de l'INTERFACE utilisateur du Répartiteur?
Est-il possible d'obtenir le thread de l'INTERFACE utilisateur du Dispatcher
lorsque vous n'avez pas de référence à tous les éléments de l'INTERFACE utilisateur?
- Un peu plus de détails... vous n'avez aucune référence à l'interface graphique d'objets ou de le Thread d'INTERFACE utilisateur ? Que comptez-vous faire une fois que vous avez le répartiteur ?
- et pour ceux qui viennent le long de sept ans plus tard, comme moi, vous avez besoin de ce alors que vous n'avez par exemple un
ObservableCollection
qui est en train d'être écouté sur le thread d'INTERFACE utilisateur (et donc l'échec de la vérification de réentrée si vous essayez de modifier hors de la thread de l'INTERFACE utilisateur) mais ne veut pas exposer tous les répartiteurs... dans ce cas, vous avez besoin de l'INTERFACE utilisateurDispatcher
, mais n'ont pas les éléments d'INTERFACE utilisateur
Vous devez vous connecter pour publier un commentaire.
Vous pouvez saisir le Répartiteur INTERFACE utilisateur de l'application statique exemple:
Application.Current.Dispatcher
Vous voudrez peut-être vérifier
Application.Current
pour les nuls tout d'abord, comme il peut être effacé pendant une séquence d'arrêt.Application
objet en disantnew System.Windows.Application()
.Le suivant fonctionne beaucoup mieux pour moi d'être utilisés dans une application WinForms qui se trouve être également l'utilisation de WPF (dans mon cas d'Esri Arcmap.exe)
L'autre méthode (qui a impliqué l'appel de
new System.Windows.Application()
pour remplirSystem.Windows.Application.Current
) a causé des problèmes pour moi à chaque fois que j'ouvre une nouvelle fenêtre WPF et puis fermé. Non seulement cette null horsSystem.Windows.Application.Current
, mais je ne pouvais plus ouvrir de nouvelles fenêtres que de leurInitializeComponents()
méthodes, tous échoué avec:Jusqu'à présent, la nouvelle solution est de travailler sans ces effets secondaires.