Bonjour à tous,

Je me questionne sur la durée de vie d'une application console.

Dans program.cs j'ai le code suivant:
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
19
20
 
        private static void Main(string[] args)
        {
                // -- Récupération de la tâche depuis le controler
                // -----------------------------------------------                
                GTMTaskController gtmTaskController = new GTMTaskController(Environment.GetCommandLineArgs());
                GTMTask gtmTask = gtmTaskController.getTask();
                gtmTask.GtmTaskOption = GTMToolsConfiguration.GtmTaskOption;
                gtmTask.OnTaskStarted += gtmTask_OnTaskStarted;
                gtmTask.OnTaskFinished += gtmTask_OnTaskFinished;
                gtmTask.onTaskProgress += gtmTask_OnTaskProgress;
                gtmTask.OnTaskError += gtmTask_OnTaskError;
 
                // -- Démarrage de la tâche
                // ------------------------
                gtmTask.runBase();
 
                while (bIsRunning)
                    Thread.Sleep(1000);
      }
Ma fonction "RunBase" peut prendre du temps, et lorsqu'elle se termine retourne l'évènement "gtmTask_OnTaskFinished".
Quand je lance le traitement, ma tâche s'exécute convenablement. Par contre, parfois, de manière aléatoire j'ai l'impression de ne pas aller dans l'évènement "gtmTask_OnTaskFinished".
Du coup j'ai mis une boucle while à la fin du main. La variable "bIsRunning" se met à false lorsque je rentre dans l'évènement "gtmTask_OnTaskFinished".
Une idée ?