protected virtual void OnEnded(TaskDelegateMetadata meta, TaskEndedEventArgs ended) { throw new NotImplementedException(); }
protected virtual void OnEnded(TaskEndedEventArgs e) { }