2010-11-05 10 views
7

Nachdem ich durch die samples of Rx.NET gegangen bin, habe ich mich geifern lassen, wie brillant das Konzept und die Implementierung von Reactive Extensions sind. Es scheint Entwicklern ein aufrechterhaltbareres Muster zu bieten, um die gleiche Art von Multi-Threaded-Parallel-Kodierung zu erreichen, die die Task-Parallel-Bibliothek von .NET 4.0 bietet.Reaktive Erweiterungen (Rx) ersetzen die Task Parallel Library?

Wird Rx.NET TPL ersetzen? Sollte es?

Antwort

15

Kurz gesagt, nein.

Die Parallel Library Aufgabe (TPL) bietet liefert Verteilung der Arbeit (Gleichzeitigkeit) sowie die gleichzeitige Optimierung der größeren Arbeit (Parallelität), während des eigentlichen Mechanismus der Arbeitsverteilung (Themen) abstrahiert.

C# fügt das Schlüsselwort async zur Verwaltung von asynchrony aus einem Sprachlevel hinzu. Rx wurde bereits aktualisiert, um diese Funktion zu unterstützen.

Rx bietet einen Rahmen zu komponieren und verwalten asynchrone Datenströme mit Standardoperatoren. Es gibt zwar einige Überschneidungen bei der Verwendung von Schedulern durch Rx, dies ist jedoch nur eine Abstraktion. In der Tat ist der empfohlene Scheduler für die Parallelität der TaskScheduler, der den TPL verwendet.

Siehe auch Jeffrey van Gogh's response zu der genau entgegengesetzten Frage auf den Rx-Foren.

Auch this question kann von Nutzen sein.

+0

TPL geht es nicht um Parallelität, es geht um Nebenläufigkeit. – user

+1

@user - Wahr, obwohl PLINQ Teil von TPL ist und Parallelität bietet. –

+3

Sie müssen die Ironie dieses Kommentars sehen "Task Parallel Library geht es nicht um Parallelismus" ;-) –

Verwandte Themen