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

cs_guda 20 Messages postés jeudi 31 janvier 2002Date d'inscription 11 février 2013 Dernière intervention - 21 mai 2010 à 16:34 - Dernière réponse : cs_guda 20 Messages postés jeudi 31 janvier 2002Date d'inscription 11 février 2013 Dernière intervention
- 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
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
bigfish_le vrai 1839 Messages postés vendredi 13 mai 2005Date d'inscription 20 novembre 2013 Dernière intervention - 21 mai 2010 à 16:51
3
Merci
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+

Merci bigfish_le vrai 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de bigfish_le vrai
Meilleure réponse
cs_guda 20 Messages postés jeudi 31 janvier 2002Date d'inscription 11 février 2013 Dernière intervention - 21 mai 2010 à 17:03
3
Merci
Merci. Ca à l'air complexe avec le thread. Je vais regarder tes deux solutions

A+

Merci cs_guda 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de cs_guda
Meilleure réponse
Mayzz 2859 Messages postés mardi 15 avril 2003Date d'inscription 26 novembre 2013 Dernière intervention - 22 mai 2010 à 17:07
3
Merci
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.

Merci Mayzz 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de Mayzz
cs_guda 20 Messages postés jeudi 31 janvier 2002Date d'inscription 11 février 2013 Dernière intervention - 24 mai 2010 à 15:46
0
Merci
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
Commenter la réponse de cs_guda

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.