Operation Task class

OperationTask类设计解析
本文介绍了一个抽象基类OperationTaskBase及其两个泛型派生类OperationTask<T>和OperationTask。这些类用于执行特定操作并通知外部任务完成状态。OperationTaskBase定义了任务完成事件和抽象Execute方法,而泛型类OperationTask<T>则实现了对带有参数的动作委托的调用。

  Operation Task class 用于处理一个operation,处理完后通知外部。

namespace Demo {
	public abstract class OperationTaskBase {
		private Boolean _isTaskCompleted;
		
		public Boolean IsTaskCompleted {
			get {
				return this._isTaskCompleted;
			}
			set {
				this._isTaskCompleted = value;
				if (this._isTaskCompleted) {
					this.OnTaskCompleted();
				}
			}
		}	

		public event EventHandler TaskCompleted;
		protected virtual void OnTaskCompleted() {
			if (this.TaskCompleted != null) {
				this.TaskCompleted(this, EventArgs.Empty);
			}
		}	
		
		public abstract void Execute();
	}

	public class OperationTask<T> : OperationTaskBase {
		private Action<T> _action;
		private T _parameter;

		public OperationTask() {
		}

		public Action<T> Action {
			get {
				return this._action;
			}
			set {
				this._action = value;
			}
		}

		public T Parameter {
			get {
				return this._parameter;
			}
			set {
				this._parameter = value;
			}
		}

		public override void Execute() {
			if (this.Action != null) {
				this.Action.Invoke(this._parameter);
			}
		}
	}

	public class OperationTask : OperationTaskBase {
		private Action _action;

		public OperationTask() {
		}

		public Action Action {
			get {
				return this._action;
			}
			set {
				this._action = value;
			}
		}

		public override void Execute() {
			if (this.Action != null) {				
				this.Action.Invoke();
			}
		}
	}
}
                

  

转载于:https://www.cnblogs.com/eleanor-wsm/archive/2012/06/20/2556625.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值