internal static Task <T> RunOrQueueTask <T>(this OrleansTaskScheduler scheduler, Func <Task <T> > taskFunc, ISchedulingContext targetContext) { ISchedulingContext currentContext = RuntimeContext.CurrentActivationContext; if (SchedulingUtils.IsAddressableContext(currentContext) && currentContext.Equals(targetContext)) { try { return(taskFunc()); } catch (Exception exc) { var resolver = new TaskCompletionSource <T>(); resolver.TrySetException(exc); return(resolver.Task); } } return(scheduler.QueueTask(taskFunc, targetContext)); }
public override bool Equals(object obj) { return(inner.Equals(obj)); }