2 Stimmen

Wie kann der WCF-Dienst Nachrichten an den Client senden, ohne seine Methode vom Dienst aus aufzurufen?

Im neu zu WCF und was ich weiß, bis jetzt, dass ich eine Methode von WCF-Service verwenden können und es gibt einige Wert zurück, aber ich wunderte mich, wenn ich eine backgroundworker und ich möchte eine Nachricht wie "Job Complete" an den Kunden senden, nachdem es beendet wurde, wie würde ich das tun?
Sollte ich AutoResetEvent verwenden und warten, bis der Backgroundworker fertig ist, dann resetEvent.Set() damit die Methode im Hauptthread die Nachricht zurückgibt?
Ich brauche, dass Thread nicht beschäftigt werden, sollte es für alle anderen Befehle bereit sein, die ich vom Client anfordern. so irgendwelche Ideen?

1voto

Murhaf Sousli Punkte 11687

Ich habe es herausgefunden, gut konnte ich nicht senden Nachricht zurück von Dienst ohne Aufruf der Methode, aber wenn ich die Attribute des Dienstes Verhalten von geändert ConcurrencyMode = ConcurrencyMode.Single à ConcurrencyMode = ConcurrencyMode.Multiple es wurde multithreaded und das Ergebnis :
die Methode läuft in einem neuen Thread wegen dieses Attributs und ich kann andere Anfrage senden, während dieser Thread arbeitet und wenn es beendet es gibt mir die Nachricht/Ergebnis.

[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Multiple, InstanceContextMode = InstanceContextMode.PerSession)]
public class FileManagerService : IFileManager

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X