Я следующий кодКак добавить продолжение для отмененных задач
try
{
var cancellationTokenSource = new CancellationTokenSource();
var token = cancellationTokenSource.Token;
var task = Task.Run(() =>
{
while (token.IsCancellationRequested == false)
{
Console.Write("*");
Thread.Sleep(1000);
}
}, token).ContinueWith((t) =>
{
Console.WriteLine("You have canceled the task");
}, TaskContinuationOptions.OnlyOnCanceled);
Console.WriteLine("Press enter to stop the task");
Console.ReadLine();
cancellationTokenSource.Cancel();
task.Wait();
}
catch (AggregateException e)
{
Console.WriteLine($"Got an exception => {e.InnerExceptions[0].Message}");
}
В этом, когда я отменить задание всегда бросает ошибку и задача продолжения не выполняется.
Но когда я удаляю TaskContinuationOptions.OnlyOnCanceled
из continueWith, то задача продолжения выполняется.
Книга, в которой я следую, имеет код с параметром TaskContinuationOptions.OnlyOnCanceled
.
Правильное ли поведение или что здесь не так?
Я новичок в нарезке. Пожалуйста, помогите мне.
Да совершенный !! он отлично работает. Я скоро приму ответ, потому что он сказал мне, что я буду делать через 7 минут. Спасибо !!! – shanmugharaj
@shansfk: Вы понимаете, почему вам это нужно? Дайте мне знать, если это непонятно - понимающая часть важнее, чем изменение кода :) –
Jon, пожалуйста, объясните. Я еще не мог понять причину. Благодарю. – shanmugharaj