Görev iptal edilen bir görev çalıştırmak için Görev Paralel Kitaplığı'nı kullanıyorum - iptal edildiğinde - AggregateException kullanılarak yakalanan OperationCanceledException, aşağıdaki gibi. AggregateException, atılan istisnalara karşılık gelen bir TaskCanceledExceptions listesi içerir. Ne yazık ki, bu TaskCanceledExceptions özgün istisnalar tarafından atılan yığın izlerini kaybetmek gibi görünüyor. Bu tasarımla mı?AggregateException içinde TaskCanceledException yığın izini içermiyor
try
{
task1.Wait();
}
catch (AggregateException aggEx)
{
var tcex = ex as TaskCanceledException;
if (tcex != null)
{
Debug.WriteLine("InnerException:{0}, Message:{1}, Source:{2}, StackTrace: {3}",
tcex.InnerException, tcex.Message, tcex.Source, tcex.StackTrace);
return true;
}
else
{
return false;
}
}
Sonuç:
InnerException:, Message:A task was canceled., Source:, StackTrace:
Lütfen gönderdiğiniz mesajları yansıtacak şekilde kodunuzu güncelleyin! :) –
"if (tcex! = Null)" satırı doğru mu? "if (tcex == null)" –
@MatthewWatson - olması gerektiği gibi görünüyor, bu "if" diğer istisnaları da filtreler. –