示例#1
0
 private void DelayFunction(int timeout, int delay)
 {
     TaskTimeout.CompletesIn(timeout, () =>
     {
         Thread.Sleep(delay);
     });
 }
示例#2
0
        public void Timeout(TaskTimeout state)
        {
            var taskId = Data.TaskId;
            var userId = Data.HandledBy.Value;

            Data.Abort(Data.HandledBy.Value);

            messageBus.Publish <TaskWasAborted>(m =>
            {
                m.TaskId    = taskId;
                m.AbortedBy = userId;
            });
        }
示例#3
0
        public virtual Task StartAsync(CancellationToken stoppingToken)
        {
            ValidateTimeout();
            Logger.LogInformation($"{GetType().Name} running.");

            Cts = new CancellationTokenSource();
            Cts.CancelAfter(TaskTimeout);
            Logger.LogInformation($"{GetType().Name} timeout is configured to: {TaskTimeout.ToString()}");

            Timer = new Timer(DoWork, null, TimeSpan.Zero, TaskPeriod);

            return(Task.CompletedTask);
        }