Salut,

Situation :
Je suis en train de créer une application console qui demande à l'utilisateur de confirmer un paramètre. Si l'utilisateur n'a pas répondu dans 5 secondes alors on exécute le code avec la valeur spécifiée.

Problème :
Avec le code si dessous je ne sors jamais de ma boucle "while(true)" pour lire la réponse de l'utilisateur.

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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
        static void Main()
        {
            bool reponse = true;
            Console.WriteLine("Oui ou non (o/n) ?");
            Delayed(5000, () => DoAction(reponse));
            while (true)
            {
                var consoleKey = Console.ReadKey().Key;
 
                if (consoleKey.Equals(ConsoleKey.O))
                {
                    reponse = true;
                    break;
                }
                else if (consoleKey.Equals(ConsoleKey.N))
                {
                    reponse = false;
                    break;
                }
            }
 
            Console.WriteLine();
            DoAction(reponse);
            Console.ReadLine();
        }
 
        public static void DoAction(bool reponse)
        {
            if (reponse) Console.WriteLine("Oui");
            else Console.WriteLine("Non");
        }
 
        private static void Delayed(int delay, Action action)
        {
            Timer timer = new Timer();
            timer.Interval = delay;
            timer.Elapsed += (s, e) =>
            {
                action();
                timer.Stop();
            };
            timer.Start();
        }

Merci d'avance.