http://msdn.microsoft.com/en-us/library/dd997415.aspxTPL manejo
por el artículo de referencia por encima de lo Excepción estoy tratando de controlar las excepciones en una tarea continuatin. El ejemplo que cito en el artículo anterior es la siguiente:
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);
Mi código es:
Task<string> task = Task<string>.Factory.StartNew(() => process.StartTask(this));
task.ContinueWith(CloseDialog, TaskContinuationOptions.OnlyOnFaulted);
En startTask, lanzo un error al igual que el ejemplo. Mi expectativa es que CloseDialog se ejecutará y puedo examinar task.Exception dentro de ese método como se muestra en el ejemplo. Sin embargo, cuando lanzo la excepción, el código simplemente se detiene con una excepción no controlada. ¿Debo usar un bloque de prueba/captura? ¿Si es así, donde? Por cierto, quiero que mi tarea de continuación (CloseDialog) se ejecute SIEMPRE. Solo estoy usando .OnlyOnFaulted porque eso es lo que se muestra en el ejemplo.