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 : 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 -.-
            }
        }
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?