private static Exception GetTaskException(Task task) { switch (task.Status) { case TaskStatus.Canceled: return new TaskCanceledException(); case TaskStatus.Faulted: return TryUnwrapAggregateException(task.Exception); } return null; }