Beispiel #1
0
 public static Task Run(ExampleAsyncCancelEvent evt, CancellationToken ct)
 {
     return(Task.Run(
                () =>
     {
         for (int i = 0; i < evt.Seconds; i++)
         {
             Thread.Sleep(1000);
             if (ct.IsCancellationRequested)
             {
                 ct.ThrowIfCancellationRequested();
                 break;
             }
         }
     }, ct));
 }
Beispiel #2
0
        public async Task <MessageResponse> PublishDomainCancelEventAsync([FromBody] MessageCancelInfo info)
        {
            if (info.CancelationInSeconds == 0)
            {
                info.CancelationInSeconds += info.DelayInSeconds + 1000;
            }

            Stopwatch stopwatch = new Stopwatch();

            stopwatch.Start();

            var cts = new CancellationTokenSource();

            cts.CancelAfter(info.CancelationInSeconds * 1000);

            var evt = new ExampleAsyncCancelEvent(info);
            await _messagingSrv.PublishAsync(evt, cts.Token);

            stopwatch.Stop();
            return(new MessageResponse {
                Elapsed = stopwatch.Elapsed
            });
        }
Beispiel #3
0
 public Task OnEventAsync(ExampleAsyncCancelEvent evt, CancellationToken ct)
 {
     return(Worker.Run(evt, ct));
 }