 
 	/**
 	designed initializer
-	(快速构造方法)
-	- parameter identifier: task identifier(任务ID)
-	- parameter from:       a number counting down from(起始计数)
-	- parameter to:         a number count down to, default is 0(终止计数, 默认为0)
-	- parameter interval:   count down interval in second, default is 1.0(计数间隔, 单位秒, 默认为1.0)
-	- parameter at:         a block called in progress of counting down(倒计时过程中的回调)
-	- parameter finish:     a block called after counting down finished(倒计时结束时的回调)
-	- returns: a CountDownTask instance(返回一个倒数计时任务实例)
+
+	- parameter identifier: task identifier
+	- parameter from:       a number counting down from
+	- parameter to:         a number count down to, default is 0
+	- parameter interval:   count down interval in second, default is 1.0
+	- parameter at:         a block called in progress of counting down
+	- parameter finish:     a block called after counting down finished
+	- returns: a CountDownTask instance
 	*/
 	convenience init(identifier: String, from: Int, to: Int = 0, interval: Double = 1.0, at: ((at: Int) -> Void)?, finish: (() -> Void)?) {
 		self.init()


class CountDownTask: Task {

	/// a number counting down from(起始计数)
	private var from: Int?

	/// a number count down to, default is 0(终止计数, 默认为0)
	private var to: Int = 0

	/// count down interval in second, default is 1.0(计数间隔, 单位秒, 默认为1.0)
	private var interval: Double = 1.0

	/// a block called in progress of counting down(倒计时过程中的回调)
	private var at: ((Int) -> Void)?

	/// a block called after counting down finished(倒计时结束时的回调)
	private var finish: (() -> Void)?

	/// a concurrent queue on which the task is attached(计时任务执行的队列)
	private var queue: DispatchQueue?

	/// delegate


	/**
	start counting down

	- parameter from:  a number count down from
	*/
	internal func startCountDown(from: Int) {
		self.queue!.async { [weak self] in
