<PackageReference Include="System.Reactive" Version="4.1.1" />

ControlObservable

public static class ControlObservable
Provides a set of static methods for subscribing to IObservables using Windows Forms controls.
using System.Reactive.Concurrency; using System.Windows.Forms; namespace System.Reactive.Linq { public static class ControlObservable { public static IObservable<TSource> SubscribeOn<TSource>(this IObservable<TSource> source, Control control) { if (source == null) throw new ArgumentNullException("source"); if (control == null) throw new ArgumentNullException("control"); return Synchronization.SubscribeOn(source, new ControlScheduler(control)); } public static IObservable<TSource> ObserveOn<TSource>(this IObservable<TSource> source, Control control) { if (source == null) throw new ArgumentNullException("source"); if (control == null) throw new ArgumentNullException("control"); return Synchronization.ObserveOn(source, new ControlScheduler(control)); } } }