Comment exécuter une boucle + windows forms
Résolu/Fermé
A voir également:
- Comment exécuter une boucle + windows forms
- Clé windows 10 gratuit - Guide
- Montage video windows - Guide
- Comment activer windows 10 - Guide
- Windows ne démarre pas - Guide
- Windows 10 gratuit - Accueil - Mise à jour
1 réponse
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
7 mars 2019 à 10:55
7 mars 2019 à 10:55
Bonjour,
Si je ne dis pas de bêtises, l'appel à Application.Run() est bloquant.
Tu peux t'en rendre compte en exécutant ton programme pas à pas : tu resteras coincé sur cette ligne jusqu'à ce que ta fenêtre soit fermée.
Si tu veux que la boucle soit exécutée en continu pendant que ton application tourne, il faut que tu crées un nouveau thread. C'est assez simple. Il y a plusieurs façon de faire. Comme tu veux que ça tourne à intervalles réguliers, tu peux utiliser un Timer (System.Threading.Timer)
Ton code deviendrait :
Xavier
Si je ne dis pas de bêtises, l'appel à Application.Run() est bloquant.
Tu peux t'en rendre compte en exécutant ton programme pas à pas : tu resteras coincé sur cette ligne jusqu'à ce que ta fenêtre soit fermée.
Si tu veux que la boucle soit exécutée en continu pendant que ton application tourne, il faut que tu crées un nouveau thread. C'est assez simple. Il y a plusieurs façon de faire. Comme tu veux que ça tourne à intervalles réguliers, tu peux utiliser un Timer (System.Threading.Timer)
Ton code deviendrait :
{ var timer = new System.Threading.Timer(_ => Console.WriteLine("YOU DIDN'T SAY THE MAGIC WORD !"), null, TimeSpan.FromSeconds(0), TimeSpan.FromSeconds(0.1)); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Program()); }
Xavier
7 mars 2019 à 12:10
D’un autre côté, l’affichage dans la console d’un programme winform ne marche qu’en développement.
Donc si tu as besoin qu’une fois utliser sans visual studio ton message s’affiche, il faut faire autrement
7 mars 2019 à 12:14
7 mars 2019 à 12:16
La commande de Reivax962 fonctionne parfaitement !
7 mars 2019 à 14:22
Il est déconseillé de coder dans program.cs, c’est censé être juste le point d’entrée du logiciel.
Tu peux (et devrais) lancer le thread depuis le formulaire (dans le constructeur, le load ou le shown)