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?
Antwort
Zu viele Anzeigen?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