Bonjour à tous,
Je me questionne sur la durée de vie d'une application console.
Dans program.cs j'ai le code suivant:
Ma fonction "RunBase" peut prendre du temps, et lorsqu'elle se termine retourne l'évènement "gtmTask_OnTaskFinished".
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); }
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 ?
Partager