を読んJeffrey Richter, CLR via C#
でいるときに、この例を見つけました。に応じて新しいタスクを実行することが期待されますTaskContinuationOptions
が、そうではありません。次の結果が得られると思いました:
Finished, SUM=5050
しかし、関数を追加throw exception
しても空の出力があり、実行されません。Sum
OnlyOnFaulted
class Program
{
public static Int32 Sum(Int32 n)
{
Int32 Sum = 0;
for (; n > 0; n--)
Sum += n;
return Sum;
}
static void Main(string[] args)
{
Task<Int32> t = new Task<Int32>(n => Sum((Int32)n), 100);
t.ContinueWith(tt => Console.WriteLine("Finished, SUM={0}", tt.Result), TaskContinuationOptions.OnlyOnRanToCompletion);
t.ContinueWith(tt => Console.WriteLine("Exception thrown"), TaskContinuationOptions.OnlyOnFaulted);
t.Start();
}
}
私が間違っているのは何ですか?