<PackageReference Include="System.Reactive" Version="6.0.0-preview.9" />

DispatcherObservable

public static class DispatcherObservable
Provides a set of extension methods for scheduling actions performed through observable sequences on UI dispatchers.
using System.Reactive.Concurrency; using System.Runtime.CompilerServices; using System.Threading; using System.Windows.Threading; namespace System.Reactive.Linq { [System.Runtime.CompilerServices.NullableContext(1)] [System.Runtime.CompilerServices.Nullable(0)] public static class DispatcherObservable { public static IObservable<TSource> ObserveOn<[System.Runtime.CompilerServices.Nullable(2)] TSource>(this IObservable<TSource> source, Dispatcher dispatcher) { if (source == null) throw new ArgumentNullException("source"); if (dispatcher == null) throw new ArgumentNullException("dispatcher"); return ObserveOn_(source, dispatcher); } public static IObservable<TSource> ObserveOn<[System.Runtime.CompilerServices.Nullable(2)] TSource>(this IObservable<TSource> source, Dispatcher dispatcher, DispatcherPriority priority) { if (source == null) throw new ArgumentNullException("source"); if (dispatcher == null) throw new ArgumentNullException("dispatcher"); return ObserveOn_(source, dispatcher, priority); } public static IObservable<TSource> ObserveOn<[System.Runtime.CompilerServices.Nullable(2)] TSource>(this IObservable<TSource> source, DispatcherScheduler scheduler) { if (source == null) throw new ArgumentNullException("source"); if (scheduler == null) throw new ArgumentNullException("scheduler"); return ObserveOn_(source, scheduler.Dispatcher, scheduler.Priority); } public static IObservable<TSource> ObserveOn<[System.Runtime.CompilerServices.Nullable(2)] TSource>(this IObservable<TSource> source, DispatcherObject dispatcherObject) { if (source == null) throw new ArgumentNullException("source"); if (dispatcherObject == null) throw new ArgumentNullException("dispatcherObject"); return ObserveOn_(source, dispatcherObject.get_Dispatcher()); } public static IObservable<TSource> ObserveOn<[System.Runtime.CompilerServices.Nullable(2)] TSource>(this IObservable<TSource> source, DispatcherObject dispatcherObject, DispatcherPriority priority) { if (source == null) throw new ArgumentNullException("source"); if (dispatcherObject == null) throw new ArgumentNullException("dispatcherObject"); return ObserveOn_(source, dispatcherObject.get_Dispatcher(), priority); } public static IObservable<TSource> ObserveOnDispatcher<[System.Runtime.CompilerServices.Nullable(2)] TSource>(this IObservable<TSource> source) { if (source == null) throw new ArgumentNullException("source"); return ObserveOn_(source, DispatcherScheduler.Current.Dispatcher); } public static IObservable<TSource> ObserveOnDispatcher<[System.Runtime.CompilerServices.Nullable(2)] TSource>(this IObservable<TSource> source, DispatcherPriority priority) { if (source == null) throw new ArgumentNullException("source"); return ObserveOn_(source, DispatcherScheduler.Current.Dispatcher, priority); } private static IObservable<TSource> ObserveOn_<[System.Runtime.CompilerServices.Nullable(2)] TSource>(IObservable<TSource> source, Dispatcher dispatcher, DispatcherPriority priority) { return Synchronization.ObserveOn(source, (SynchronizationContext)new DispatcherSynchronizationContext(dispatcher, priority)); } private static IObservable<TSource> ObserveOn_<[System.Runtime.CompilerServices.Nullable(2)] TSource>(IObservable<TSource> source, Dispatcher dispatcher) { return Synchronization.ObserveOn(source, (SynchronizationContext)new DispatcherSynchronizationContext(dispatcher)); } public static IObservable<TSource> SubscribeOn<[System.Runtime.CompilerServices.Nullable(2)] TSource>(this IObservable<TSource> source, Dispatcher dispatcher) { if (source == null) throw new ArgumentNullException("source"); if (dispatcher == null) throw new ArgumentNullException("dispatcher"); return SubscribeOn_(source, dispatcher); } public static IObservable<TSource> SubscribeOn<[System.Runtime.CompilerServices.Nullable(2)] TSource>(this IObservable<TSource> source, Dispatcher dispatcher, DispatcherPriority priority) { if (source == null) throw new ArgumentNullException("source"); if (dispatcher == null) throw new ArgumentNullException("dispatcher"); return SubscribeOn_(source, dispatcher, priority); } public static IObservable<TSource> SubscribeOn<[System.Runtime.CompilerServices.Nullable(2)] TSource>(this IObservable<TSource> source, DispatcherScheduler scheduler) { if (source == null) throw new ArgumentNullException("source"); if (scheduler == null) throw new ArgumentNullException("scheduler"); return SubscribeOn_(source, scheduler.Dispatcher, scheduler.Priority); } public static IObservable<TSource> SubscribeOn<[System.Runtime.CompilerServices.Nullable(2)] TSource>(this IObservable<TSource> source, DispatcherObject dispatcherObject) { if (source == null) throw new ArgumentNullException("source"); if (dispatcherObject == null) throw new ArgumentNullException("dispatcherObject"); return SubscribeOn_(source, dispatcherObject.get_Dispatcher()); } public static IObservable<TSource> SubscribeOn<[System.Runtime.CompilerServices.Nullable(2)] TSource>(this IObservable<TSource> source, DispatcherObject dispatcherObject, DispatcherPriority priority) { if (source == null) throw new ArgumentNullException("source"); if (dispatcherObject == null) throw new ArgumentNullException("dispatcherObject"); return SubscribeOn_(source, dispatcherObject.get_Dispatcher(), priority); } public static IObservable<TSource> SubscribeOnDispatcher<[System.Runtime.CompilerServices.Nullable(2)] TSource>(this IObservable<TSource> source) { if (source == null) throw new ArgumentNullException("source"); return SubscribeOn_(source, DispatcherScheduler.Current.Dispatcher); } public static IObservable<TSource> SubscribeOnDispatcher<[System.Runtime.CompilerServices.Nullable(2)] TSource>(this IObservable<TSource> source, DispatcherPriority priority) { if (source == null) throw new ArgumentNullException("source"); return SubscribeOn_(source, DispatcherScheduler.Current.Dispatcher, priority); } private static IObservable<TSource> SubscribeOn_<[System.Runtime.CompilerServices.Nullable(2)] TSource>(IObservable<TSource> source, Dispatcher dispatcher, DispatcherPriority priority) { return Synchronization.SubscribeOn(source, (SynchronizationContext)new DispatcherSynchronizationContext(dispatcher, priority)); } private static IObservable<TSource> SubscribeOn_<[System.Runtime.CompilerServices.Nullable(2)] TSource>(IObservable<TSource> source, Dispatcher dispatcher) { return Synchronization.SubscribeOn(source, (SynchronizationContext)new DispatcherSynchronizationContext(dispatcher)); } } }