public void FromEventPattern() { var test = new EventTestesr(); { var isRaised = false; var d = Observable.FromEventPattern <EventHandler, EventArgs>( h => h.Invoke, h => test.Event1 += h, h => test.Event1 -= h) .Subscribe(x => isRaised = true); test.Fire(1); isRaised.IsTrue(); isRaised = false; d.Dispose(); test.Fire(1); isRaised.IsFalse(); } { var isRaised = false; var d = Observable.FromEventPattern <EventHandler <MyEventArgs>, MyEventArgs>( h => h.Invoke, h => test.Event2 += h, h => test.Event2 -= h) .Subscribe(x => isRaised = true); test.Fire(2); isRaised.IsTrue(); isRaised = false; d.Dispose(); test.Fire(2); isRaised.IsFalse(); } { var isRaised = false; var d = Observable.FromEventPattern <MyEventHandler, MyEventArgs>( h => h.Invoke, h => test.Event3 += h, h => test.Event3 -= h) .Subscribe(x => isRaised = true); test.Fire(3); isRaised.IsTrue(); isRaised = false; d.Dispose(); test.Fire(3); isRaised.IsFalse(); } }
public void FromEvent() { var test = new EventTestesr(); { var isRaised = false; var d = Observable.FromEvent <EventHandler, EventArgs>( h => (sender, e) => h.Invoke(e), h => test.Event1 += h, h => test.Event1 -= h) .Subscribe(x => isRaised = true); test.Fire(1); isRaised.IsTrue(); isRaised = false; d.Dispose(); test.Fire(1); isRaised.IsFalse(); } { var isRaised = false; var d = Observable.FromEvent <EventHandler <MyEventArgs>, MyEventArgs>( h => (sender, e) => h.Invoke(e), h => test.Event2 += h, h => test.Event2 -= h) .Subscribe(x => isRaised = true); test.Fire(2); isRaised.IsTrue(); isRaised = false; d.Dispose(); test.Fire(2); isRaised.IsFalse(); } { var isRaised = false; var d = Observable.FromEvent <MyEventHandler, MyEventArgs>( h => (sender, e) => h.Invoke(e), h => test.Event3 += h, h => test.Event3 -= h) .Subscribe(x => isRaised = true); test.Fire(3); isRaised.IsTrue(); isRaised = false; d.Dispose(); test.Fire(3); isRaised.IsFalse(); } { var isRaised = false; var d = Observable.FromEvent <Action, Unit>( h => () => h(Unit.Default), h => test.Event4 += h, h => test.Event4 -= h) .Subscribe(x => isRaised = true); test.Fire(4); isRaised.IsTrue(); isRaised = false; d.Dispose(); test.Fire(4); isRaised.IsFalse(); } // shortcut { var isRaised = false; var d = Observable.FromEvent( h => test.Event4 += h, h => test.Event4 -= h) .Subscribe(x => isRaised = true); test.Fire(4); isRaised.IsTrue(); isRaised = false; d.Dispose(); test.Fire(4); isRaised.IsFalse(); } { var isRaised = false; var d = Observable.FromEvent <Action <int>, int>( h => h, h => test.Event5 += h, h => test.Event5 -= h) .Subscribe(x => isRaised = true); test.Fire(5); isRaised.IsTrue(); isRaised = false; d.Dispose(); test.Fire(5); isRaised.IsFalse(); } // shortcut { var isRaised = false; var d = Observable.FromEvent <int>( h => test.Event5 += h, h => test.Event5 -= h) .Subscribe(x => isRaised = true); test.Fire(5); isRaised.IsTrue(); isRaised = false; d.Dispose(); test.Fire(5); isRaised.IsFalse(); } { var isRaised = false; var d = Observable.FromEvent <Action <int, string>, Tuple <int, string> >( h => (x, y) => h(Tuple.Create(x, y)), h => test.Event6 += h, h => test.Event6 -= h) .Subscribe(x => isRaised = true); test.Fire(6); isRaised.IsTrue(); isRaised = false; d.Dispose(); test.Fire(6); isRaised.IsFalse(); } }