Огонь и Забудь о подходе
Относится кэтот ответ,
Если я действительно хочу «запустить и забыть» метод, который действительно возвращает задачу, и (для простоты) предположим, что метод не должен генерировать какие-либо исключения. Я могу использовать метод расширения, указанный в ответе:
public static void Forget(this Task task)
{
}
Используя этот подход, если есть ошибки в действииTask
которые вызывают исключение, тогда, когда генерируется непредвиденное исключение, оно будет проглочено и останется незамеченным.
Вопрос: Не было бы более уместно в этом сценарии для метода расширения иметь форму:
public static async void Forget(this Task task)
{
await task;
}
Так что ошибки программирования выдают исключение и обостряются (обычно останавливая процесс).
В случае метода с ожидаемыми (и игнорируемыми) исключениями, метод должен был бы стать более сложным (в дополнение, какие-либо предложения о том, как создать версию этого метода, которая бы принимала список допустимых и игнорируемых типов исключений? )