Voici un exemple de quelque chose qui est facile à faire avec la programmation réactive, mais compliqué (si ce n'est difficile) avec les événements classiques, il dessine des lignes lorsque le bouton de la souris est enfoncé. C'est lisible, il n'y a pas de gestion d'état explicite :
var pen = new Pen(Color.Red, 3);
var graphics = this.CreateGraphics();
var mouseMoveWhileDown =
from md in this.GetMouseDown()
from mv in this.GetMouseMove().Until(this.GetMouseUp())
select new Point(mv.X, mv.Y);
mouseMoveWhileDown
.Pairwise()
.Subscribe(tup => graphics.DrawLine(pen, tup.Item1, tup.Item2));
(Je dois avouer que dans cet exemple, Pairwise() est de fabrication maison...)
L'aspect le plus important de IObservable est qu'il est "composable", tout comme IEnumerable.
Je recommande vivement la vidéo mentionnée dans une autre réponse. En fait, il y a plusieurs vidéos différentes sur le sujet sur Channel9 :
0 votes
Je continue à chercher - j'ai besoin de voir beaucoup d'exemples avant d'avoir une bonne idée de ce à quoi il convient le mieux.
4 votes
J'ai construit une petite démo de recherche Bing en direct dans WPF avec Rx : blog.andrei.rinea.ro/2013/06/01/
5 votes
Je réponds exactement à cette question dans une série de billets sur mon blog : rehansaeed.co.uk/reactive-extensions-part1-replacing-events