protected Exception GetThrownException() { if (DependsOn == null) { return(null); } if (DependsOn.Task.Status == TaskStatus.Faulted) { var exception = DependsOn.Task.Exception; return(exception?.InnerException ?? exception); } return(DependsOn.GetThrownException()); }