Exemple #1
0
        /// <summary>
        /// Runs the task on the current thread.
        /// </summary>
        public bool Run(CancellationToken cancellationToken)
        {
            ThreadId = Thread.CurrentThread.ManagedThreadId;

            GlobalListeners.Attach(this);

            bool result = false;

            try
            {
                var handle = new TaskHandle(Progress, _cancellationTokenSource.Token, _pauseEvent, this);

                result = Tool.Run(handle);
            }
            finally
            {
                GlobalListeners.Detach(this);

                ThreadId = -1;
            }

            return(result);
        }