Пример #1
0
        /// <summary>
        /// Tasks the action.
        /// </summary>
        /// <param name="parameter">The parameter.</param>
        protected void TaskAction(object parameter)
        {
            if (this.cancellationTokenSource.IsCancellationRequested)
            {
                lock (this.statusSync)
                {
                    this.status = PipeTaskStatus.Cancelled;
                    this.OnStatusChanged();
                }

                return;
            }

            lock (this.statusSync)
            {
                this.status = PipeTaskStatus.Running;
                this.OnStatusChanged();
            }

            this.action(parameter);

            lock (this.statusSync)
            {
                this.status = PipeTaskStatus.Finished;
                this.OnStatusChanged();
            }
        }
 // constructors
 /// <summary>
 /// Initializes a new instance of the <see cref="PipeTaskStatusChangedEventArgs"/> class.
 /// </summary>
 /// <param name="status">The status.</param>
 /// <param name="parameter">The parameter.</param>
 public PipeTaskStatusChangedEventArgs(PipeTaskStatus status, object parameter)
     : base()
 {
     this.status = status;
     this.parameter = parameter;
 }
Пример #3
0
        /// <summary>
        /// Initializes a new instance of the <see cref="PipeTask"/> class.
        /// </summary>
        protected PipeTask()
        {
            this.cancellationTokenSource = new CancellationTokenSource();

            this.statusSync = new object();
            this.status = PipeTaskStatus.NotStarted;
        }
Пример #4
0
 /// <summary>
 /// Called when [task status changed].
 /// </summary>
 /// <param name="status">The status.</param>
 /// <param name="parameter">The parameter.</param>
 protected void OnTaskStatusChanged(PipeTaskStatus status, object parameter)
 {
     if (this.TaskStatusChanged != null)
     {
         this.TaskStatusChanged(this, new PipeTaskStatusChangedEventArgs(status, parameter));
     }
 }