Programme qui se fige sur une boucle While ==> comment éviter cela [Résolu]

Signaler
Messages postés
20
Date d'inscription
jeudi 31 janvier 2002
Statut
Membre
Dernière intervention
11 février 2013
-
Messages postés
20
Date d'inscription
jeudi 31 janvier 2002
Statut
Membre
Dernière intervention
11 février 2013
-
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

Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
9
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+
Messages postés
20
Date d'inscription
jeudi 31 janvier 2002
Statut
Membre
Dernière intervention
11 février 2013

Merci. Ca à l'air complexe avec le thread. Je vais regarder tes deux solutions

A+
Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
28
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.
Messages postés
20
Date d'inscription
jeudi 31 janvier 2002
Statut
Membre
Dernière intervention
11 février 2013

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