Reactive Extensions

From the Microsoft Rx web page:

The Reactive Extensions (Rx) is a library for composing asynchronous and event-based programs using observable sequences and LINQ-style query operators. Using Rx, developers represent asynchronous data streams with Observables, query asynchronous data streams using LINQ operators, andparameterize the concurrency in the asynchronous data streams using Schedulers. Simply put, Rx = Observables + LINQ + Schedulers.

You may also want to check out DotNetRocks podcast 756 with Bart de Smet:

Carl and Richard talk to Bart de Smet about the beta of Reactive Extensions (Rx) Version 2. Currently in beta when the show was recorded, Rx 2.0 works with .NET 4.5, both for desktop and metro, as well as Silverlight 5 and Windows Phone 7.1. Bart talks about how Rx lets you write LINQ expressions over top of events, completely changing the way you think about responding to events. If you're tired of cluttering up your UI code with event handlers or you've got a back end process that needs to deal with millions of incoming events, you owe it to yourself to look at Rx! 

Phil Haack has a blog entry about Reactive Extensions that also includes an example of ReactiveUI. Phil says: 

Fortunately, now that I work at GitHub I have the pleasure to work with an Rx Guru, Paul Betts, on a project that actively uses Rx. And man, is my mind blown by Rx.

Some additional links via StackOverflow:

 

Â