Récupérer l'Exception levée durant un Action.BeginInvoke
Bonjour,
J'utilise l'objet Action et sa méthode BeginInvoke pour executer un traitement.
Seulement une exception peut être levée durant ce traitement et je ne parviens pas à la récupérer..
Voila comment je fais:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
private void Execute(Action<string> action, string parameter)
{
IAsyncResult result = action.BeginInvoke(parameter, callbackMethod, null);
}
private void callbackMethod(IAsyncResult result)
{
Action action = result.AsyncState as Action;
try
{
action.EndInvoke(result); //dans le cas d'une exception levée dans le thread, action == null
}
catch (Exception ex)
{
Console.WriteLine(ex.Message); //donc peu importe l'exception levée dans le thread, ici on aura une NullReferenceException -.-
}
} |
En fouillant dans l'objet result en mode debug, je trouve bien l'exception que je cherche mais dans ses champs privés. Pas moyen de la récupérer...
Quelqu'un aurait-il une solution?