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:
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...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 -.- } }
Quelqu'un aurait-il une solution?
Partager