 		_isFinished = true
 		_finishTime = Date()
 		
+		didChangeValue(forKey: #keyPath(AsyncOperation.isExecuting))
 		didChangeValue(forKey: #keyPath(AsyncOperation.isFinished))
-		didChangeValue(forKey: #keyPath(AsyncOperation.isExecuting))
 		
 		_endBackgroundTask()
 	}

	
		super.cancel()
		
		willChangeValue(forKey: #keyPath(AsyncOperation.isCancelled))
		willChangeValue(forKey: #keyPath(AsyncOperation.isExecuting))
		willChangeValue(forKey: #keyPath(AsyncOperation.isFinished))
		
		if selfLogEnabled {
			var errorString: String = ""

		_isFinished = true
		_finishTime = Date()
		
		didChangeValue(forKey: #keyPath(AsyncOperation.isExecuting))
		didChangeValue(forKey: #keyPath(AsyncOperation.isCancelled))
		didChangeValue(forKey: #keyPath(AsyncOperation.isFinished))
		
		_endBackgroundTask()
	}
