Kapitel 3. Asynchrone Streams

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

Asynchrone Streams sind eine Möglichkeit, mehrere Datenelemente asynchron zu empfangen. Sie bauen auf asynchronen Enumerables (IAsyncEnumerable<T>) auf. Eine asynchrone Enumerable ist eine asynchrone Version einer Enumerable, d. h. sie kann Elemente auf Anfrage für einen Verbraucher produzieren, und jedes Element kann asynchron produziert werden.

Ich finde es nützlich, asynchrone Streams mit anderen Typen zu vergleichen, die mir vielleicht vertrauter sind, und die Unterschiede zu berücksichtigen. So kann ich mich daran erinnern, wann ich asynchrone Streams verwenden sollte und wann andere Typen besser geeignet sind.

Asynchrone Streams und Task<T>

Der asynchrone Standardansatz mit Task<T> reicht nur für die asynchrone Verarbeitung eines einzigen Datenwerts aus. Sobald ein bestimmtes Task<T> abgeschlossen ist, war's das; ein einzelnes Task<T> kann nicht mehr als einen Wert von T für seine Konsumenten bereitstellen. Auch wenn T eine Sammlung ist, kann der Wert nur einmal bereitgestellt werden. Siehe "Einführung in die asynchrone Programmierung" und Kapitel 2 für weitere Informationen zur Verwendung von async mit Task<T>.

Wenn du Task<T> mit asynchronen Streams vergleichst, ähneln die asynchronen Streams mehr den Enumerables. Ein IAsyncEnumerator<T> kann eine beliebige Anzahl von T Werten liefern, einen nach dem anderen. ...

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.