public void TaskCancellationManager_CancelledAfterCompleted()
        {
            var mgr = new TaskCancellationManager<int>();
            mgr.Add(42, _ => Task.CompletedTask);
            mgr.Cancel(42);

            // Not throwing implies success
        }
        public void TaskCancellationManager_CancelInvalidId()
        {
            var mgr = new TaskCancellationManager <int>();

            mgr.Cancel(42);

            // Not throwing implies success
        }
Example #3
0
        public async Task TaskCancellationManager_CancelledAfterCompleted()
        {
            var mgr = new TaskCancellationManager <int>();
            await mgr.Add(42, _ => Task.CompletedTask);

            mgr.Cancel(42);

            // Not throwing implies success
        }
        public void TaskCancellationManager_CancelledAfterCompleted()
        {
            var mgr = new TaskCancellationManager <int>();

            mgr.Add(42, _ => Task.FromResult(true));
            mgr.Cancel(42);

            // Not throwing implies success
        }
Example #5
0
 public async Task TryCancelExportAsync()
 {
     try
     {
         _cancellationManager.Cancel();
         await _cancellationManager.WaitForAllToCancelAsync();
     }
     catch (Exception ex)
     {
         Logger.LogErrorEverywhere("Ошибка отмены экспорта", ex);
     }
 }
        public async Task TaskCancellationManager_CancelledAfterCompleted()
        {
            var mgr  = new TaskCancellationManager <int>();
            var task = new Task(() => { });

            task.Start();
            await mgr.AddAndInvokeAsync(42, _ => task);

            mgr.Cancel(42);

            // Not throwing implies success
        }
        public void TaskCancellationManager_CancelTask()
        {
            var enter = new AutoResetEvent(false);
            var exit = new AutoResetEvent(false);
            var mgr = new TaskCancellationManager<int>();
            mgr.Add(42, async token =>
            {
                var tcs = new TaskCompletionSource<bool>();
                using (token.Register(() => tcs.SetResult(true)))
                {
                    enter.Set();
                    await tcs.Task;
                    exit.Set();
                }
            });

            Assert.IsTrue(enter.WaitOne());
            mgr.Cancel(42);
            Assert.IsTrue(exit.WaitOne());
        }
Example #8
0
        /// <summary>
        /// Initiates the network fetch and informs the producer when a
        /// response is received via the provided callback.
        /// </summary>
        /// <param name="fetchState">
        /// The fetch-specific state.
        /// </param>
        /// <param name="callback">
        /// The callback used to inform the network fetch producer.
        /// </param>
        public override void Fetch(
            FetchState fetchState,
            INetworkFetcherCallback callback)
        {
            _tasks.Add(fetchState.Id, token => FetchASync(fetchState, callback, token));

            fetchState.Context.AddCallbacks(
                new BaseProducerContextCallbacks(
                    () =>
            {
                bool isCanceled = _tasks.Cancel(fetchState.Id);
                if (isCanceled)
                {
                    callback.OnCancellation();
                }
            },
                    () => { },
                    () => { },
                    () => { }));
        }
Example #9
0
        public async Task TaskCancellationManager_CancelTask()
        {
            var enter = new AutoResetEvent(false);
            var exit  = new AutoResetEvent(false);
            var mgr   = new TaskCancellationManager <int>();
            var t     = mgr.Add(42, async token =>
            {
                var tcs = new TaskCompletionSource <bool>();
                using (token.Register(() => tcs.SetResult(true)))
                {
                    enter.Set();
                    await tcs.Task;
                    exit.Set();
                }
            });

            Assert.IsTrue(enter.WaitOne());
            mgr.Cancel(42);
            Assert.IsTrue(exit.WaitOne());
            await t;
        }
 public void abortRequest(int requestId)
 {
     _prefetchRequests.Cancel(requestId);
 }
Example #11
0
 public void stopDownload(int jobId)
 {
     _tasks.Cancel(jobId);
 }