async/await für high-performance-server-Anwendungen?

den neuen async - /await-Schlüsselwörter in C# 5 sehen sehr vielversprechend aus, aber Las ich einen Artikel über die performance-Auswirkungen auf diese Anwendungen, da der compiler generiert ein Recht komplexer Zustandsautomat für asynchrone Methoden.

Async-Programmierung mit Hilfe dieser Schlüsselwörter ist so viel einfacher aber ist es so gut wie sagen SocketAsyncEventArgs für Steckdosen ?

Zweite Frage: Sind asynchrone IO-Methoden wie Stream.WriteAsync wirklich asynchron (Abschluss-Ports auf .Net oder epoll/poll auf Mono) oder sind diese Methoden Billig-Wrapper für das drücken einer write-Aufruf an einen threadpool ?

Dritte Frage: Neben dem Synchronisierungskontext einer UI-Anwendung, gibt es eine Möglichkeit zu implementieren, eine Art von Single-threaded-Kontext ? So etwas wie eine event-Schleife, so dass erledigte Aufgaben weiterhin auf dem main-thread ?
Ich entdeckte den Nito.AsyncEx Bibliothek, aber ich bin mir nicht ganz sicher, ob oder nicht das ist, was ich brauche.

InformationsquelleAutor Kr0e | 2013-02-06
Schreibe einen Kommentar