多くの方法を試しましたが、task.ContinueWith でキャンセル例外をキャッチできませんでした。ここに何か問題がありますか:
CancellationTokenSource tokenSource = new CancellationTokenSource();
Task task = new Task( ()=> { Thread.Sleep(1000); Console.WriteLine("in task!"); }, tokenSource.Token);
task.Start();
tokenSource.Cancel();
task.ContinueWith(t =>
{
if(t.IsCanceled)
{
AggregateException e = t.Exception;
if(e == null) // is true
Console.WriteLine("Cancelled: ");
}
});
Console.Read();
出力は次のとおりです。
キャンセル:
これは、キャンセル例外がキャッチされたことを意味しますが、例外自体は空です。私の質問は、ここでキャンセルの例外を取得する方法ですか?
ありがとう
デレク