Kapitel 9. Sammlungen

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Die Verwendung von den richtigen Collections ist in nebenläufigen Anwendungen unerlässlich. Ich spreche hier nicht von den Standardsammlungen wie List<T>; ich gehe davon aus, dass du diese bereits kennst. In diesem Kapitel werden neuere Collections vorgestellt, die speziell für die gleichzeitige oder asynchrone Verwendung gedacht sind.

Unveränderliche Sammlungen sind Sammlungsinstanzen, die sich nie ändern können. Auf den ersten Blick klingt das völlig nutzlos, aber sie sind tatsächlich sehr nützlich, sogar in Single-Thread-Anwendungen, die nicht konkurrieren. Nur-Lese-Operationen (wie z. B. Aufzählungen) wirken direkt auf die unveränderliche Instanz. Schreiboperationen (wie das Hinzufügen eines Elements) geben eine neue unveränderliche Instanz zurück, anstatt die bestehende Instanz zu verändern. Das ist nicht so verschwenderisch, wie es sich zunächst anhört, denn unveränderliche Sammlungen teilen sich in der Regel den größten Teil ihres Speichers. Außerdem haben unveränderliche Sammlungen den Vorteil, dass sie implizit sicher sind, wenn mehrere Threads auf sie zugreifen; da sie sich nicht ändern können, sind sie thread-sicher.

Tipp

Unveränderliche Sammlungen sind in dem System.Collections.Immutable NuGet-Paket.

Unveränderliche Sammlungen sind neu, sollten aber bei Neuentwicklungen in Betracht gezogen werden, es sei denn, ...

Get Concurrency in C# Cookbook, 2. Auflage now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.