2012-10-01 14 views
7

Soll ich von nun an async/abwarten (C# 5), wenn ich nicht sofort das Ergebnis einer Methode benötige (Task <>) oder eine einmalige Methode (void) auslösen muss?Wann sollte ich async verwenden/abwarten und wann nicht?

Sollte ich es in allen Fällen verwenden, wenn ich die Task-Klasse in C# 4 verwendet und Arbeit an die Backgroud-Threads geschoben?

Sollte ich es nur in Fällen verwenden, in denen ich asynchrone .Net Framework-Methoden verwendet habe?

Verwirrt.

Ich bin im Grunde auf der Suche nach einer einfachen Erklärung, in welchen Fällen ich erwarten/Async verwenden sollte und wann nicht.

Antwort

8

async/await kann verwendet werden, wenn Sie asynchrone Operationen haben. Viele Operationen sind natürlich asynchron (wie E/A); Ich empfehle async für alle diese. Andere Operationen sind natürlich synchron (wie zum Beispiel eine Berechnung); Ich empfehle synchrone Methoden für diese.

Sie können Task.Run mit async für Hintergrund arbeiten, wenn Sie asynchronen synchronen Code ausführen müssen. Ich erkläre auf meinem Blog, warum dies better than BackgroundWorker and asynchronous delegates ist.

Sie können auch async verwenden, um andere Formen der asynchronen Verarbeitung zu ersetzen, z. B. IAsyncResult.

Sie sollten verwenden async in jeder Situation, in der Sie eine asynchrone Operation haben.

Verwandte Themen