вопрос общий. Не совсем понимаю их работу. Если Task.Run в потоке UI и exception task попадает в состояние failed. Если Task.Run падает все, если Task.Factory.StartNew, то при исключении задача просто завершается в состояние TaskStatus.RanToCompletion. Код один и тот же, исключения не обрабатываю, вся задача это вызов метода доступа к БД. Это нормальное поведение и так и должно быть, или мне нужно это кодом отрабатывать? Или что это может быть?
Я честно пытался это понять, но нихрена не понял Если Task.Run в потоке UI и exception task попадает в состояние failed. Если Task.Run падает все, если Task.Factory.StartNew, то при исключении задача просто завершается в состояние TaskStatus.RanToCompletion
Суть в том, что поведение платформы как реакция на необработанное исключение разное в зависимости от формы создания объекта Task. А глобалного обрабочика необработанных в блазоре нет в той форме, в которой можно было бы это дело перехватить и обработать. В итоге либо эшелонированная оборона, либо имеем вероятность падения. Мне кажется в этом есть недоработка платформы.
Все равно не понял, Task.Factory.StartNew нормально отрабатывает или нет?
Во всех случаях exception, но всегда разный статус task-а в результате. Обработать эту чешую стоит дополнительного кода и на статус положиться нельзя. Хотя код задачи один и тот же.
Это проблема wasm'а https://stackoverflow.com/a/61865580/11565032
Полезная информация, но у меня server-side.
Обсуждают сегодня