Ich mache grade meine ersten Schritte mit C# und .NET, genauer gesagt ganz simple Konsolenanwendungen in .NET Core und Visual Studio Code.
Ich habe nun eine Anwendung welche aus einer externen Quelle Daten bekommt, diese eine Weile lang aufbereitet und schließlich auf einem Webserver speichert.
Mittlerweile gehe ich noch ganz stumpf seriell vor:
- Daten einholen
- Daten aufbereiten
- Daten versenden
Klar: Schritt 1,2 & 3 ließen sich optimieren indem dort parallel gearbeitet würde - Die Möglichkeiten in C# mit System.Threading.Tasks.Parallel sind so enorm wie komfortabel - Das bekomme ich noch hin.
Mir geht es darum dass ich nach dem Einholen (1) der ersten Daten eigentlich schon diese aufbereiten (2) könnte. Und wenn aufbereitet, schon versenden (3). Das, während noch Daten weiter abgeholt werden (1), denn es sind einige.
Meine Frage: Wie macht man das in C# typischerweise? Ich tue mich schwer hier etwas zu finden. Klar könnte man einfach Dinge in eine Warteschlange für jeweils Schritt 1, 2, 3 packen und jeweils ein Thread kümmert sich um die Dinge aus der für ihn gedachten Warteschlage.
Aber ich würde erwarten dass es hier in der Standard-Bibliothek etwas gibt, dieses "Pipelining" wäre ja kein so unübliches Konzept. Kann mir hier jemand aushelfen? Ich fand bislang nur ein komisches DataFlow-Ding, aber das scheint noch nicht einmal Bestandteil der Standard .NET Bibliothek zu sein...