Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Rx 101

Rx 101

Introduction to Reactive Extensions

Matt Stasch

June 26, 2015
Tweet

More Decks by Matt Stasch

Other Decks in Programming

Transcript

  1. 2 1 N (-> ∞) Synchronous T IEnumerable<T> Iterable<T> Asynchronous

    Task<T> Future<T> Promise<T> IObservable<T> Observable<T>
  2. 4 IObservable<T> IObserver<T> public interface IObservable<out T> { IDisposable Subscribe(IObserver<T>

    observer); } public interface IObserver<in T> { void OnCompleted(); void OnError(Exception error); void OnNext(T value); }
  3. 5 IObservable<T> IObserver<T> public interface IObservable<out T> { IDisposable Subscribe(IObserver<T>

    observer); } public interface IObserver<in T> { void OnCompleted(); void OnError(Exception error); void OnNext(T value); }
  4. 19 Rx will pick a default scheduler by using the

    principle of least concurrency… https://msdn.microsoft.com/en-us/library/hh242963(v=vs.103).aspx
  5. 21 Schedulers  CurrentThread  Immediate  TaskPool  ThreadPool

     NewThread  Actor-Model  Timers  Own implementations
  6. 23 var sequence = new Subject<int>(); Console.WriteLine("Next line should lock

    the system."); var value = sequence.First(); sequence.OnNext(1); Console.WriteLine("I can never execute....");