В TPL, если исключение выбрано Task, это исключение захватывается и сохраняется в Task.Exception, а затем следуют всем правилам наблюдаемых исключений. Если он никогда не наблюдал, он в конце концов возвращался к потоку финализатора и выходил из строя.
Есть ли способ предотвратить запуск задачи этим исключением и просто позволить ей распространять вместо этого?
Задание, которое меня интересует, уже будет работать в потоке пользовательского интерфейса (любезно предоставлено TaskScheduler.FromCurrentSynchronizationContext), и я хочу исключение чтобы сбежать, поэтому его можно обработать моим существующим обработчиком Application.ThreadException.
В основном я хочу, чтобы необработанные исключения в Задаче выполнялись как необработанные исключения в обработчике кнопок: сразу распространяются на поток пользовательского интерфейса и обрабатываются ThreadException.