• If you are citizen of an European Union member nation, you may not use this service unless you are at least 16 years old.

  • Work with all your cloud files (Drive, Dropbox, and Slack and Gmail attachments) and documents (Google Docs, Sheets, and Notion) in one place. Try Dokkio (from the makers of PBworks) for free. Now available on the web, Mac, Windows, and as a Chrome extension!


Reactive Extensions

This version was saved 10 years, 5 months ago View current version     Page history
Saved by Chris Bilson
on May 6, 2011 at 10:56:50 am




  • nuget i Rx-All 
  • generators: Observable.Create<int>(...)
  • adapters:
    • Observable.FromEvent<MouseEventArgs>(...)
    • .FromEventPattern<MouseEventArgs>(frm, "MouseMove") <- uses reflection to find the event
  • composition
    • frm.MouseMove += (_, args) =>  { if (this) ... else if (that) ... } <- not composable
    • Observable.FromEventPattern<>(...).Select(...) <-  specific events, logic not in action, actions composable
    • crossing streams: Observable.___<>(...).SelectMany(evt => ...) 
  • schedulers
    • Observable.Timer(5.Seconds()) <- fires one event in 5 seconds
    • Which timer? Up to you. Scheduler abstraction. 
      • context + policy + clock
      • distrib. process, you might use remote clock
      • IScheduler <- mostly don't need to worry about. Use defaults: Observable.Range(1, 10, Scheduler.ThreadPool)
      • Scheduler.Immediate, Scheduler.Dispatcher.... 
  • debugging
    • Use .Do to cause side effects (like Console.WriteLine) that you can observe to figure out what's going on 
  • Other stuff
    • .DistinctUntilChanged can de-dup an event stream
    • .Timestamp makes T into Timestamped<T> which 
    • Throttle: A----B--200ms----C -> A gets cancelled because B happened within throttle period 
  • Challenges
    • Challenge in learning Rx: there are a lot of operators 
  • Path Forward
    • Already on the Win7 Phone ROM
    • Unstable releases every 3 weeks-ish right now 
    • Stable releases: not as often, but supported, documentation, etc. .NET 4.0+, Silverlight 5, Win7 Phone
    • Binaries and doc comments are redistributable

Comments (0)

You don't have permission to comment on this page.