TPL Teil 6 – Aggregationen

Mit Schleifen werden häufig Daten zusammengeführt, bzw. verdichtet. Solche Aggregationen werden innerhalb der Task Parallel Library (TPL) durch die Methoden Parallel.For() und Parallel.ForEach() direkt unterstützt.

Continue reading “TPL Teil 6 – Aggregationen”

TPL Teil 5 – Exceptions

Ein wichtiger Aspekt bei parallelen Abläufen ist die Fehlerbehandlung. Da Vorgänge gleichzeitig ausgeführt werden, können auch Ausnahmen zeitgleich auftreten. Diese sollten bei einer produktiven Anwendung sauber und zuverlässig abgefangen werden. Die TPL bietet hier einige Verbesserungen aber auch einige Fallstricke gegenüber der klassischen Multithreading-Programmierung.

Continue reading “TPL Teil 5 – Exceptions”

TPL Teil 4 – Die Klasse Parallel

Neben der Klasse Task, die im zweiten Teil vorgestellt wurde, bietet die Klasse Parallel mit die interessantesten Neuerungen in der Task Parallel Library (TPL). Sowohl das Parallel.For-Konstrukt als auch das Parallel.ForEach-Konstrukt stellt eine konkurrenzlos einfache Möglichkeit bereit, um aufwändige Berechnungen zu parallelisieren und damit deutlich zu beschleunigen.

Continue reading “TPL Teil 4 – Die Klasse Parallel”

TPL Teil 3 – Workflows

Mit der Klasse Task ist es möglich, weitere Tasks zu definieren, die ausgeführt werden, sobald der aktuelle Task beendet wurde. Dabei kann u.a. definiert werden, ob die Nachfolge-Aktion nur bei erfolgreicher Beendigung oder im Falle eines Fehlers ausgeführt werden soll. Hierdurch lassen sich mit der Task Parallel Library (TPL) sehr elegant umfangreiche Workflows definieren.

Continue reading “TPL Teil 3 – Workflows”

TPL Teil 2 – Die Klasse Task

Bisher stand bei der Programmierung von multithreading Applikationen die Klasse Thread im Mittelpunkt. Mit .NET 4 wurde die Task Parallel Library (TPL) eingeführt, die mit der Klasse Task ein neues Konzept zur Verfügung stellt. Diese ist zwar auf den ersten Blick vergleichbar mit der Thread-Klasse, bringt aber einige Neuerungen und Verbesserungen mit sich.

Continue reading “TPL Teil 2 – Die Klasse Task”

TPL Teil 1 – Einführung

Seit der ersten Version von .NET lassen sich mit der Klasse System.Threading.Thread multithreading-fähige Anwendungen erstellen. Allerdings stammt diese Klasse aus einer Zeit, in der Single-Core-CPUs der Stand der Dinge waren. Um Multi-Core-CPUs effektiv nutzen zu können, bedarf es neuer Werkzeuge. Mit dem .NET Framework 4.0 wurde die Task Parallel Library (TPL) eingeführt. Diese API vereinfacht vieles, doch ist auch ein Umdenken erforderlich.

Continue reading “TPL Teil 1 – Einführung”