Unterschied zwischen WCF-sync und async-Aufruf?
Ich bin neu in WCF, die wissen wollen, was für einen Unterschied es machen sync Anruf oder eine async call, wird es wirklich hilfreich, wenn jemand erklären mit Beispiel
Danke
Du musst angemeldet sein, um einen Kommentar abzugeben.
Async-Aufruf der client ist die gleiche wie jede andere asynchrone operation in .NET-Framework. Wenn Sie sync-Aufruf aus einem thread, um den WCF-Dienst wird der Faden hängen. Es heißt thread, nicht in der Lage zu tun, alle anderen arbeiten, bis das service-Aufruf gibt Antwort oder exception. Im Gegensatz dazu sind die asynchronen Aufruf läuft in einem separaten thread (erstellt von Rahmenbedingungen), damit der Haupt-thread in der Lage, weiterhin in Betrieb und es wird eine Benachrichtigung über die Fertigstellung der asynchronen Aufruf von callback (event).
Also nehmen wir an, dass Sie WinForms-Anwendung, die als WCF-client und den Sie anrufen möchten, WCF-Dienst. Wenn Sie einen sync nennen, die mehrere Sekunden in Anspruch nehmen, Ihre Anwendung hängt für diese Zeitspanne = der Benutzer wird nicht in der Lage sein, etwas zu tun mit der Anwendung (nur zu töten, es aus dem task-manager). Aber wenn Sie mit einem asynchronen Aufruf wird Sie vollständig interaktive, weil async operation behandelt wird, indem Sie hintergrund-thread. Also asynchrone Operationen sind geeignet für interaktive Lösungen, oder wenn Sie brauchen, um mehrere Operationen parallel.
Beispielsweise überprüfen diese Wie man Artikel von MSDN.
Nur zur Vollständigkeit habe ich beschrieben, der Unterschied zwischen sync und async Aufrufe = synchrone und asynchrone Verarbeitung auf dem client. WCF unterstützt auch sync und async-Operationen = synchronnous und die asynchrone Verarbeitung auf dem server.
WCF hat die async-Unterstützung gebacken. Es können verschiedene Szenarien für den Einsatz von asynchronen Aufrufe.
Im Falle Ihrer Anwendung benötigt, um einen WCF-Aufruf, was wiederum einige Zeit in Anspruch, dann könnte es besser sein, um einen asynchronen Aufruf. Dies gibt die Kontrolle an den Benutzer sofort, so dass die Anwendung nicht angezeigt wird gehängt. Sobald der hintergrund WCF-Aufruf beendet ist, es würde die Anwendung der Benutzer wissen, dass ist ist getan.
Lassen Sie uns sagen, Sie haben einen WCF, die fügt einige Zeilen in eine Tabelle. Davon ausgehen, dass die WCF fordert, tablename und die Zeilen eingefügt werden, die als Argumente. Also, wenn Sie benötigen, rufen Sie die WCF-3 mal zum einfügen von Zeilen in 3 separate Tabellen, vielleicht wäre es besser, gleich 3 asynchrone Aufrufe kann die Arbeit parallel statt sequentiell einfügen der Zeilen in die 3 Tische, die eins nach dem anderen.
Holen Sie sich einige gute Lektüre unter: http://www.codeproject.com/KB/WCF/WCFConcurrency.aspx