Я изучаю и экспериментирую с продолжением задачи, но я не знаю, как исключение может пройти через TaskContinuationOption.OnlyOnFaulted
.
Насколько я знаю, Task.Wait()
предоставляет место, где программа можетперехватить любые исключения, которые могут быть сгенерированы задачей, но я не знаю, почему она возвращает исключение, но задача с TaskContinuationOption.OnlyOnFaulted
продолжается.
Task t1 = Task.Factory.StartNew(()=> {
Console.WriteLine("T1 started");
throw new Exception();
});
Task tFault = t1.ContinueWith((x)=> {
Console.WriteLine("T fault started");
}, TaskContinuationOptions.OnlyOnFaulted);
Task t3 = tFault.ContinueWith((x)=> {
Console.WriteLine("T3 started");
});
t1.Wait();
Я ожидаю, что t1 будет ждать связанных задачзавершить без исключения.