Kapitel 8. Interop
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
Asynchron, parallel, reaktiv - jedes dieser Verfahren hat seinen Platz, aber wie gut funktionieren sie zusammen?
In diesem Kapitel sehen wir uns verschiedene Interop-Szenarien an, in denen du lernst, wie du diese verschiedenen Ansätze kombinieren kannst. Du lernst, dass sie sich gegenseitig ergänzen und nicht miteinander konkurrieren; es gibt kaum Reibungen an den Grenzen, wo ein Ansatz auf den anderen trifft.
8.1 Async Wrapper für "Async" Methoden mit "Completed" Ereignissen
Problem
Dort ist ein älteres asynchrones Muster, das Methoden namens
zusammen mit Ereignissen namens Operation
Async
. Du möchtest eine Operation mit dem älteren asynchronen Muster durchführen und Operation
Completedawait
das Ergebnis.
Tipp
Die
und Operation
Async
Muster wird das Ereignis-basierte asynchrone Muster (EAP) genannt. Du wirst sie in eine Operation
CompletedTask
-Rückgabemethode verpacken, die dem Task-based Asynchronous Pattern (TAP) folgt.
Lösung
Mit dem Typ TaskCompletionSource<TResult>
kannst du Wrapper für asynchrone Operationen erstellen. Der Typ TaskCompletionSource<TResult>
steuert eine Task<TResult>
und ermöglicht es dir, die Aufgabe zum richtigen Zeitpunkt zu erledigen.
Dieses Beispiel definiert eine Erweiterungsmethode für WebClient
, die eine string
herunterlädt. Der Typ WebClient
definiert DownloadStringAsync
und DownloadStringCompleted ...
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.