Я хочу выполнить задачу в конце исходной задачи, но хотел бы сохранить исходный результат и тип. Добавленная задача предназначена только для регистрации, например, для записи в консоль и т. Д. Например:
Task.Run(() => DateTime.Now.Hour > 12 ? "Hey!" : throw new Exception())
.ContinueWith(t =>
{
if (t.IsCompletedSuccessfully)
{
Console.WriteLine("Success");
return t.Result;
}
else
{
Console.WriteLine("Failure");
throw t.Exception;
}
});
Тип исходного задания: Task<string>
. Здесь I return t.Result
, если задача не обнаруживает ошибки, и I throw t.Exception
, если задача сталкивается с ошибкой. Похоже, тип остается Task<string>
, но не уверен насчет стороны исключения.
Это правильный способ сделать это? Или есть лучший способ?