public void StartNew(TSource source, Func <TSource, CancellationToken, TResult> function) { if (function == null) { throw new ArgumentNullException("function"); } using (SynchronizedStateChange <SupercedableTaskState <TSource, TResult> > stateChange = ChangeState()) stateChange.NewState = SupercedableTaskState <TSource, TResult> .CheckSupercede(stateChange.CurrentState, source, function); }
public void StartNew(TSource source, TResult value) { using (SynchronizedStateChange <SupercedableTaskState <TSource, TResult> > stateChange = ChangeState()) stateChange.NewState = SupercedableTaskState <TSource, TResult> .CheckSupercede(stateChange.CurrentState, source, value); }