Esempio n. 1
0
 protected virtual void OnPreempted()
 {
     if (ShouldPreempt != null)
     {
         _logger.Debug(LogTag, "Received preempt message.");
         ShouldPreempt(this, null);
     }
 }
Esempio n. 2
0
        public void Start()
        {
            _tokenSource = new CancellationTokenSource();
            var cancellationToken = _tokenSource.Token;

            var task = new Task(() => Execute(cancellationToken), cancellationToken, TaskCreationOptions.LongRunning);

            ConfigureTaskForErrors(task, OnError, cancellationToken);

            _tasks.Add(task);

            task.Start(TaskScheduler.Current);

            if (_preempter != null)
            {
                StartPreempter(cancellationToken);
            }

            _logger.Debug(LogTag, "Started.");

            OnStarted();
        }