Was ist, wenn Sie mehrere asynchrone E/A-Aufgaben parallel ausführen müssen, aber sicherstellen müssen, dass nicht mehr als X-E/A-Prozesse gleichzeitig ausgeführt werden; und vor und nach E/A-Verarbeitungsaufgaben sollte keine solche Beschränkung haben.Wie werden mehrere asynchrone Tasks parallel ausgeführt?
Hier ist ein Szenario - sagen wir, es gibt 1000 Aufgaben; jeder von ihnen akzeptiert eine Textzeichenfolge als Eingabeparameter; wandelt diesen Text um (vor E/A-Verarbeitung) und schreibt diesen umgewandelten Text in eine Datei. Das Ziel besteht darin, dass die Vorverarbeitungslogik 100% der CPU/Kerne und den E/A-Teil der Tasks mit maximal 10 Grad Parallelität nutzt (maximal 10 gleichzeitig zum Schreiben von Dateien gleichzeitig geöffnet).
Können Sie einen Beispielcode zur Verfügung stellen, wie man es mit C#/.NET 4.5 macht?
http://blogs.msdn.com/b/csharpfaq/archive/2012/01/23/using-async-for-file-access-alan-berman.aspx
Rx 2.0 könnte eine gute Passform für diese sein (die zweite Stufe 10 zu einer Zeit Drosselung), aber ich bin nicht vertraut genug damit um sicher zu sein. : -/ –