Rozdział 11. Reactive Extensions

Biblioteka Reactive Extension for .NET — albo Rx, jak się zazwyczaj o niej mówi — została zaprojektowana z myślą o pracy z asynchronicznymi, wykorzystującymi zdarzenia źródłami informacji. Udostępnia ona usługi pomagające organizować i synchronizować sposoby, w jakie nasz kod reaguje na dane pochodzące ze źródeł tego typu. W rozdziale 9. wyjaśniono już, jak można definiować i subskrybować zdarzenia, jednak Rx oferuje pod tym względem znacznie więcej niż jedynie podstawowe możliwości. Definiuje bowiem abstrakcję do reprezentacji źródeł zdarzeń, których opanowanie jest trudniejsze niż w przypadku standardowych zdarzeń, oraz duży zbiór operatorów, dzięki którym łączenie i zarządzanie wieloma strumieniami zdarzeń jest znacznie łatwiejsze od wykorzystania delegatów oraz standardowych zdarzeń dostępnych w .NET.

Podstawowa abstrakcja Rx — interfejs IObservable<T> — reprezentuje sekwencję elementów, a jej operatory zostały zdefiniowane jako metody rozszerzeń przeznaczone dla tego interfejsu. Może to przypominać nieco dostawcę LINQ to Objects i faktycznie w obu rozwiązaniach są pewne podobieństwa — nie tylko IObservable<T> ma wiele wspólnego z interfejsem IEnumerable<T>, lecz dodatkowo Rx obsługuje niemal wszystkie standardowe operatory LINQ. Jeśli znasz LINQ, to także korzystanie z Rx nie sprawi Ci najmniejszych problemów. Różnica pomiędzy oboma rozwiązaniami polega jednak na tym, że w Rx sekwencje są mniej pasywne. W odróżnieniu od implementacji IEnumerable ...

Get C# 8.0. now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.