.NET

Programowanie reaktywne

Reactive Extensions (Rx), IObservable, operators, schedulers, backpressure (opcjonalne, mniej powszechne w nowoczesnych web API)

24 pytań z rozmów·
Senior
1

Czym jest interfejs IObservable<T> w Reactive Extensions (Rx.NET)?

Odpowiedź

IObservable<T> to podstawowy interfejs w Rx.NET, który reprezentuje źródło danych oparte na push. Udostępnia metodę Subscribe, pozwalającą obserwatorom subskrybować, aby otrzymywać asynchroniczne powiadomienia. Jest to reaktywny odpowiednik IEnumerable<T>: podczas gdy IEnumerable pobiera dane synchronicznie (pull), IObservable wypycha (push) dane asynchronicznie do subskrybentów.

2

Jakie są trzy metody interfejsu IObserver<T> w Rx.NET?

Odpowiedź

IObserver<T> definiuje trzy metody: OnNext(T value) do odbierania każdego elementu sekwencji, OnError(Exception error) do obsługi błędów i sygnalizowania końca sekwencji w razie niepowodzenia oraz OnCompleted() do wskazania, że sekwencja zakończyła się pomyślnie. Te trzy metody tworzą kontrakt obserwatora, który gwarantuje, że po OnError lub OnCompleted nie zostanie wywołane żadne kolejne OnNext.

3

Jaka jest główna różnica między IEnumerable<T> a IObservable<T>?

Odpowiedź

IEnumerable<T> to model pull, w którym konsument żąda danych synchronicznie za pomocą GetEnumerator() i MoveNext(). IObservable<T> to model push, w którym źródło wypycha dane asynchronicznie do subskrybentów za pomocą Subscribe(). IEnumerable blokuje wątek wywołujący podczas iteracji, podczas gdy IObservable umożliwia operacje nieblokujące i komponowanie zdarzeń asynchronicznych za pomocą operatorów LINQ.

4

Jaka jest rola operatora Select w Rx.NET?

5

Jak działa operator Where w Rx.NET?

+21 pytań z rozmów

Opanuj .NET na następną rozmowę

Uzyskaj dostęp do wszystkich pytań, flashcards, testów technicznych, ćwiczeń code review i symulatorów rozmów.

Zacznij za darmo