Programme qui se fige sur une boucle While ==> comment éviter cela

Résolu
cs_guda Messages postés 20 Date d'inscription jeudi 31 janvier 2002 Statut Membre Dernière intervention 11 février 2013 - 21 mai 2010 à 16:34
cs_guda Messages postés 20 Date d'inscription jeudi 31 janvier 2002 Statut Membre Dernière intervention 11 février 2013 - 24 mai 2010 à 15:46
Bonjour,

j'ai réalisé une appli qui récupère les données d'une interface USB pour les traiter.

En gros je fait une boucle While qui check le buffer de l'interface USB.

Quand j'étais un mode application Console cela fonctionnait bien.

Maintenant que je suis en mode Application Windows Form, ma boucle While fige mon appli (ce qui est normal d'ailleurs). Plus aucun bouton ne répond.


Comment éviter cela ?

Merci pour votre aide

4 réponses

bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 13
21 mai 2010 à 16:51
Salut,

si tu utilise bien du vb.net, utlise les "thread" au lieu d'une boucle while

une explication ici : http://msdn.microsoft.com/en-us/library/3e8s7xdd(vs.71).aspx

si tu sais pas faire autrement que de faire du pas recommandé:

System.Windows.Forms.Application.DoEvents


A+
3
cs_guda Messages postés 20 Date d'inscription jeudi 31 janvier 2002 Statut Membre Dernière intervention 11 février 2013
21 mai 2010 à 17:03
Merci. Ca à l'air complexe avec le thread. Je vais regarder tes deux solutions

A+
3
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 30
22 mai 2010 à 17:07
Autres soluce :

- Simplement avec un timer si tu as une interface (pas la meilleur soluce si tu veux mon avis)

- Le backgroundWorker gère pour toi le multithreading, attention au appels inter-thread avec les compo winforms.

Bien entendu le top reste de créer une classe dont la fonction d'écoute torunerais dans un autre thread et déclancherai un événement lors d'un changement dans le tampon.

++ Mayzz

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
3
cs_guda Messages postés 20 Date d'inscription jeudi 31 janvier 2002 Statut Membre Dernière intervention 11 février 2013
24 mai 2010 à 15:46
Merci beaucoup, tu m'as fait découvrir le backgroundWorker. Cela répond idéalement à mon besoin.

Pour ceux que cela interesse, j'ai trouvé deux tutoriels en français :

http://glarde.developpez.com/dotnet/bgworker/vb/

http://cyrilhome.over-blog.net/article-13916520.html
0