上海虹口龙之梦项目
 
 
 
 

27 lines
770 B

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);
}
}
}