public override void CancelAsync() { //Console.WriteLine ("CancelAsync (): {0} - {1}", remoteUri.ToString (), Status); bool cancelLive = false; lock (SyncRoot) { if (executing) { cancelLive = true; } if (SetCanceled()) { if (cancelLive) { wc.CancelAsync(); } else { if (SetCompleted()) { CloseLocalStream(true); SetStatus(TaskStatus.Cancelled); OnTaskCompleted(null, true); } } } } }
public override void CancelAsync() { lock (SyncRoot) { if (!completed) { cancelled = true; if (wc != null) { wc.CancelAsync(); } EmitCompletionEvents(FeedDownloadError.Canceled); } } }