2012-04-05 8 views
0

Wenn ich einen Anruf an den Server mache, dass es viel Zeit dauern könnte, ist es die Verwendung von asynchronen Methoden im Serververtrag empfohlen.WCF: Zweifel über Async vs Threading im Client

In diesem Fall, um den Proxy zu erstellen, muss ich angeben, dass ich die asynchronen Methoden erstellen möchte.

Allerdings habe ich mich gefragt, wenn ich Threading im Client verwenden, um die Aufrufe an den Dienst zu machen, ist es möglicherweise nicht erforderlich, asynchrone Methoden zu verwenden, da dieser sekundäre Thread das Ergebnis warten kann, ohne den Client zu blockieren. Ich benutze .NET 4.0, also kann ich Aufgaben verwenden.

Das ist richtig? Wenn dies richtig ist, was ist der beste Weg, verwenden Sie asynchrone Methoden oder verwenden Sie Thrading im Client?

Danke. Daimroc.

Antwort

1

Ich würde persönlich asynchrone Methoden empfehlen, vor allem da Microsoft die Richtung mit .NET 4.5 eindeutig einschlägt - in C# 5 wird es Sprachunterstützung geben, um die Verwendung von asynchronen APIs wirklich einfach zu machen. Ihr Client-Code muss sich nicht um das Marshalling zwischen Threads kümmern, um sicherzustellen, dass die Benutzeroberfläche nur im richtigen Thread aktualisiert wird, Threads separat erstellt usw. - es kann nur auf die Serviceergebnisse "warten" und es wird "das Richtige tun" .

Es gibt nichts magische in dieser Unterstützung - alle grundlegende Fragen zugrunde liegende Gleichzeitigkeit noch behandelt werden müssen - aber die Plattform für Sie, die fehleranfällig vorformulierten kümmern, die es viel einfacher machen, um zu sehen und zu handhaben die inhärente, unvermeidbare Komplexität.