http://msdn.microsoft.com/en-us/library/dd997415.aspxTPL movimentazione
Per l'articolo di cui sopra ho Eccezione sto cercando di gestire le eccezioni in un compito continuatin. L'esempio cito in questo articolo di cui sopra è questo:
var task1 = Task.Factory.StartNew(() =>
{
throw new MyCustomException("Task1 faulted.");
})
.ContinueWith((t) =>
{
Console.WriteLine("I have observed a {0}",
t.Exception.InnerException.GetType().Name);
},
TaskContinuationOptions.OnlyOnFaulted);
Il mio codice è:
Task<string> task = Task<string>.Factory.StartNew(() => process.StartTask(this));
task.ContinueWith(CloseDialog, TaskContinuationOptions.OnlyOnFaulted);
In startTask, butto un errore, proprio come l'esempio. La mia aspettativa è che CloseDialog venga eseguito e che io possa esaminare task.Exception all'interno di quel metodo come mostrato nell'esempio. Tuttavia, quando lancio l'eccezione, il codice si arresta semplicemente con un'eccezione non gestita. Dovrei usare un blocco try/catch? Se sì, dove? A proposito, voglio che il mio task di continuazione (CloseDialog) venga eseguito SEMPRE. Sto solo usando .OnlyOnFaulted perché è quello che viene mostrato nell'esempio.