2017-01-25 2 views
-4

Wie funktioniert Async in .NET 4.5 und höher? Wie unterscheidet es sich von BeginInvoke und EndInvokeWie funktioniert Async/await in .net 4.5

+2

Sie können viele Antworten darauf im Internet finden und dies ist keine spezielle Frage für Stack-Überlauf. Beobachten Sie dies, um async zu lernen/warten Sie: http://StackOverflow.com/documentation/c%23/48/async-await#t=201701250624127863526 und werfen Sie hier einen Blick für die guten Fragen: http://StackOverflow.com/ help/how-to-ask – Sebi

+0

Können Sie mit einigen Diagrammen die Threading-Konzepte in Async erklären/erwarten – TsunamiCoder

+0

@TsunamiCoder Sie können mein [async Intro] finden (http://blog.stephencleary.com/2012/02/async-and -await.html) hilfreich. –

Antwort

1

Async und wartet mit der Task-Bibliothek. Wenn Sie eine Methode schreiben und async machen möchten, müssen Sie sie nur als async markieren und call have für jede Aufgabe innerhalb Ihrer Methode aufrufen. Nur das await-Schlüsselwort macht Ihre Methode asynchron und nur dieser Code läuft asynchron. Zum Beispiel:

Beachten Sie, dass asynchrone Methoden Task oder Task zurückgeben, die den Rückgabetyp einkapseln. Mit dieser Aufgabe können andere Methoden auf Ihre Methode warten. Bis dahin bauen Sie eine Kette, die in Ihrer GUI endet. Ihre GUI blockiert also nicht und reagiert nicht.

fand ich dieses Diagramm nach 1 Sekunde von Google, die ziemlich gut dieses Verhalten beschreiben:

enter image description here

Das hat nicht viel mit BeginInvoke und EndInvoke zu tun, weil Invoke Anrufe nur für die Verwendung von GUI-Objekte sind in verschiedene Themen. Wenn möglich sollten Sie BeginInvoke und EndInvoke vermeiden und die GUI nur auf Ihrem Mainthread verwenden.

+0

Hallo, bitte stellen Sie einige Sequenzdiagramme, weil ich weiß, dass das obige Diagramm von einer Website kopiert – TsunamiCoder

Verwandte Themen