示例#1
0
        public SyncAction(OperationQueue operationQueue, IMobileServiceLocalStore store, CancellationToken cancellationToken)
        {
            this.OperationQueue    = operationQueue;
            this.Store             = store;
            this.TaskSource        = new TaskCompletionSource <object>();
            this.CancellationToken = cancellationToken;

            cancellationToken.Register(() => TaskSource.TrySetCanceled());
        }
示例#2
0
        protected override Task Close()
        {
            _lifetime.TrySetCanceled();

            return(base.Close());
        }
 private void CancelTask()
 {
     Log.Debug($"Propagating cancellation request to task {TaskSource.Task.Id}.");
     TaskSource.TrySetCanceled();
 }
示例#4
0
        protected override Task Close()
        {
            _taskSource.TrySetCanceled();

            return(base.Close());
        }
示例#5
0
 public static bool TrySetFromTask <T>(this TaskSource <T> target, Task <T> source, CancellationToken candidateToken)
 => source.IsCanceled
         ? target.TrySetCanceled(candidateToken.IsCancellationRequested ? candidateToken : CancellationToken.None)
         : source.Exception != null
             ? target.TrySetException(source.Exception)
             : target.TrySetResult(source.Result);