2010-07-07 10 views
5

Ich habe versucht, herauszufinden, wie Sie System.Threading.Tasks asynchron zum Aufrufen einer synchronen WCF-Methode bei gleichzeitiger Unterstützung von Abbruch, Fehlerbehandlung, Ergebnis-Return und mehrere Fortsetzungen.Benötigen umfassende C# System.Threading.Tasks Beispiel

Ich bin auf eine Reihe von unvollständigen Demos gestoßen, aber sie scheinen alle etwas zu fallen. Als Beispiel kann ich keine kooperative Annullierung verwenden, da alle meine WCF-Methoden atomar und relativ langlebig sind.

+1

Aufgaben erfordern aufdringliche asynchrone Unterstützung in Ihrem Zielcode (benutzerdefiniert oder nicht), um all diese Funktionen zu aktivieren - insbesondere die Löschung. Sie können eine synchrone Methode aus einer asynchronen erstellen, aber Sie können es nicht umgekehrt tun, ohne den Code zu ändern (möglicherweise zu refaktorieren). –

Antwort

1

Ich würde eine alternative Option in Betracht ziehen - generieren Sie die WCF-Client-Schnittstelle mit asynchronen Methoden. Dadurch können Sie alle WCF-Serviceaufrufe asynchron (aus Sicht der Clientanwendung) ausführen, wodurch Sie die Stornierung, Fehlerbehandlung, Ergebnisrückgabe usw. unterstützen können.

Der Vorteil ist, dass Sie gewonnen haben ' t blockiert einen Thread im Worker-Thread-Pool (wie bei System.Threading.Tasks) und Sie haben nicht die Sorge, herauszufinden, wie Sie einen synchronen WCF-Aufruf in Ihrem Worker-Thread abbrechen.

Gibt es einen Grund, dass Sie einen synchronen WCF-Aufruf durchführen müssen?

+0

Vielen Dank für Ihre schnelle Antwort. Leider verwende ich einen benutzerdefinierten Proxy, so dass ich den nativen WCF-Async nicht verwenden kann ... –

1

Wenn Sie erklärt haben, was Sie ein bisschen mehr tun, könnte es helfen.

Sie scheinen jedoch zu sagen, Sie möchten eine asynchrone Version eines synchronen Aufrufs, und darum geht es bei Tasks nicht.

Die aufgabenbasierte Verarbeitung besteht darin, einen asynchronen Anruf wie einen synchronen Anruf aussehen zu lassen. Nicht so, als ob nur der Code so aussieht, wie er funktioniert.

Verwandte Themen