Concurrency in C# Cookbook (Rezepte für parallele Programmierung in C#)
284 Seiten
German
PDF
4.5

Concurrency in C# Cookbook (Rezepte für parallele Programmierung in C#)

Concurrency in C# Cookbook (Rezepte für parallele Programmierung in C#)

Autor:

Jahr:

Zusammenfassung:

Einleitung

Das Buch „Concurrency in C# Cookbook“ (in deutscher Übersetzung – „Rezepte für parallele Programmierung in C#“) von Stephen Cleary ist einer der besten praktischen Leitfäden für asynchrone und parallele Programmierung im .NET-Ökosystem. Das 2019 erschienene (zweite Auflage) Buch ist eine Sammlung bewährter Lösungen für typische Aufgaben, mit denen jeder C#-Entwickler konfrontiert wird, der mit Multithreading, Asynchronität und Parallelität arbeitet.

Das Buch richtet sich an Praktiker: Es enthält keine überflüssige Theorie, dafür aber klare, einsatzbereite Rezepte. Jedes Rezept enthält eine Problemstellung, den Code zur Lösung, Erläuterungen und Warnhinweise. Dies macht das Buch zu einem unverzichtbaren Nachschlagewerk für alle, die effizienten, sicheren und skalierbaren Code in C# schreiben möchten.

Worum geht es in diesem Buch

Das Buch deckt alle wesentlichen Aspekte der parallelen Programmierung in .NET ab, angefangen bei den Grundlagen von async/await bis hin zu fortgeschrittenen Themen wie reaktive Programmierung (Rx.NET), Channels und Testen von asynchronem Code. Insgesamt umfasst das Buch 15 Kapitel, die jeweils einem bestimmten Bereich gewidmet sind:

  • Kapitel 1. Grundlagen von async/await – Erstellen und Erwarten von Aufgaben, Fehlerbehandlung, Abbruch von Operationen.
  • Kapitel 2. Datenflüsse (Dataflow) – Die TPL Dataflow-Bibliothek zum Aufbau von Datenverarbeitungspipelines.
  • Kapitel 3. Reaktive Programmierung (Rx) – Arbeiten mit Observable-Sequenzen.
  • Kapitel 4. Parallele Sammlungen – ConcurrentDictionary, ConcurrentQueue und andere threadsichere Strukturen.
  • Kapitel 5. Sperren und Synchronisation – SemaphoreSlim, ReaderWriterLockSlim, AsyncLock.
  • Kapitel 6. Channels – Der neue Producer/Consumer-Mechanismus in .NET Core.
  • Kapitel 7. Testen von asynchronem Code – Mocks, Timeouts, Korrektheitsprüfung.
  • Kapitel 8. Fortgeschrittene Szenarien – Asynchrone Streams (IAsyncEnumerable), ValueTask, ConfigureAwait.

Jedes Rezept folgt einem einheitlichen Schema: Problem → Lösung → Diskussion → Warnhinweise. Dies ermöglicht es, schnell die benötigte Antwort zu finden und sofort im Projekt anzuwenden.

Für wen ist dieses Buch geeignet

Das Buch richtet sich an C#-Entwickler, die bereits über grundlegende Erfahrung mit der Sprache und der .NET-Plattform verfügen. Es ist nützlich für:

  • Backend-Entwickler, die hochbelastbare Dienste mit ASP.NET Core erstellen.
  • Desktop-Entwickler (WPF, WinForms), die UI-Einfrierungen vermeiden möchten.
  • Ingenieure, die von .NET Framework auf .NET Core/.NET 5+ umsteigen, um moderne Ansätze für Asynchronität zu erlernen.
  • Teamleiter und Architekten, die Entscheidungen über die Auswahl von Werkzeugen für die parallele Verarbeitung treffen müssen.

Anfänger in der asynchronen Programmierung sollten zunächst die einleitenden Kapitel lesen, aber insgesamt setzt das Buch voraus, dass der Leser bereits mit den Grundlagen von C# vertraut ist.

Was der Leser lernen wird

Nach dem Studium des Buches werden Sie in der Lage sein:

  • async/await korrekt ohne Deadlocks und Race Conditions zu verwenden.
  • Datenverarbeitungspipelines mit TPL Dataflow zu erstellen.
  • Mit reaktiven Streams (Rx.NET) zur Verarbeitung von Ereignissen und Streaming-Daten zu arbeiten.
  • Die geeignete threadsichere Sammlung für eine bestimmte Aufgabe auszuwählen.
  • Asynchrone Sperren und andere Synchronisationsprimitive zu implementieren.
  • Channels für eine effiziente Kommunikation zwischen Producer und Consumer zu nutzen.
  • Tests für asynchronen Code mit xUnit und Moq zu schreiben.
  • Den Unterschied zwischen Task, ValueTask, IAsyncEnumerable zu verstehen und den optimalen Typ auszuwählen.

Stärken des Buches

Empfehlungen