Ich arbeite an einem Projekt, das die folgenden Technologien verwendet:
Ich führe gerade einen asynchronen Aufruf zu einem unserer Web Services mit den von einem Proxy generierten Begin / End-Methoden durch. Der Aufruf ist erfolgreich und der Client kann die Antwort des Web-Service auf einem Arbeitsthread empfangen.
Sobald die Antwort eingegangen ist, fahre ich fort, ein Ereignis auszulösen. Die für das Ereignis abonnierte Klasse fordert eine UI-Navigation mit PRISM an:
%Vor% Da die asynchrone WCF-Antwort nicht im UI-Thread erfasst wird, muss ich den UI-Thread mit Application.Current.Dispatcher.BeginInvoke(...)
aufrufen.
Das Problem hier ist, dass der Aufruf nichts zu tun scheint. Die Benutzeroberfläche wird nicht aktualisiert, und es wird keine Ausnahme ausgelöst.
Wie soll ich den Benutzeroberflächenthread innerhalb eines Ereignisses aufrufen, das in einem Arbeitsthread ausgelöst wird?
Bearbeiten: Diese Frage wurde unter dem folgenden Link erneut gestellt, da das angenommene Duplikat keine Antwort liefert:
UI-Navigation mit PRISM anfordern 4 in einem asynchronen WCF-Antwort-Thread
Sie müssen sicherstellen, dass Sie auf der tatsächlichen Benutzeroberfläche Dispatcher
aufrufen, nicht unbedingt die Current
. Sie könnten versuchen, die Benutzeroberfläche Dispatcher
zu übergeben oder eine Art Callback zu verwenden, das von der Benutzeroberfläche irgendwo gehandhabt wird.
Tags und Links wcf wpf c# multithreading prism