123456789101112131415161718192021222324252627 |
- using System;
- namespace UniRx
- {
- public interface IOptimizedObservable<T> : IObservable<T>
- {
- bool IsRequiredSubscribeOnCurrentThread();
- }
- public static class OptimizedObservableExtensions
- {
- public static bool IsRequiredSubscribeOnCurrentThread<T>(this IObservable<T> source)
- {
- var obs = source as IOptimizedObservable<T>;
- if (obs == null) return true;
- return obs.IsRequiredSubscribeOnCurrentThread();
- }
- public static bool IsRequiredSubscribeOnCurrentThread<T>(this IObservable<T> source, IScheduler scheduler)
- {
- if (scheduler == Scheduler.CurrentThread) return true;
- return IsRequiredSubscribeOnCurrentThread(source);
- }
- }
- }
|