Donner la main aux autres applications [Résolu]

Messages postés
6
Date d'inscription
vendredi 29 avril 2005
Statut
Membre
Dernière intervention
19 avril 2007
- - Dernière réponse : cs_felipe99
Messages postés
6
Date d'inscription
vendredi 29 avril 2005
Statut
Membre
Dernière intervention
19 avril 2007
- 17 avril 2007 à 20:37
Voici mon probleme. J'ai un code qui a une grosse boucle ou a chaque fois il y a un ping. Quand le programme est dans cette boucle je ne peux rien faire. Je voudrais pouvoir rendre la main aux autres taches pendant le ping et puis retourner voir ensuite si ce ping est fini.
Comment est ce que je peux faire ceci afin d'obtenir plus de fluidite dans mon programme ?
Merci 
Afficher la suite 

9 réponses

Meilleure réponse
Messages postés
4824
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
11
3
Merci
Salut,

Voir du côté de : DoEvents

A+
Exploreur

 

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 142 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Exploreur
Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
7 novembre 2014
13
3
Merci
Le ping pouvant être très long avant d'arriver au DoEvents, ton prog se figera et tu ne pourras rien y faire en VB6 qui ne connait pas les threads.

ciao...
BruNews, MVP VC++

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 142 internautes nous ont dit merci ce mois-ci

Commenter la réponse de BruNews
Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
7 novembre 2014
13
3
Merci
Aucune en VB6, trop vieux, faut migrer sur .net

ciao...
BruNews, MVP VC++

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 142 internautes nous ont dit merci ce mois-ci

Commenter la réponse de BruNews
Messages postés
6
Date d'inscription
vendredi 29 avril 2005
Statut
Membre
Dernière intervention
19 avril 2007
0
Merci
Ok merci maintenant mon programme est beaucoup plus fluide.
Cependant je me demande si il n'y a pas un autre moyen de faire car si on fait tourner une tache qui prend 5 minutes dans une boucle et que l'on met DoEvents dans la boucle alors on a la main seulement toutes les 5 minutes, non?
Desole si la question parait concon mais je fais du VB depuis 4 jours donc ...
Commenter la réponse de cs_felipe99
Messages postés
4824
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
11
0
Merci
Salut,

Voici ce que donne l'aide en ligne de vb(exemple de DoEvents dans une boucle)...

DoEvents, fonction, exemple
Cet exemple utilise la fonction DoEvents afin que l'exécution soit cédée au système d'exploitation une fois toutes les 1000 répétitions de la boucle. La fonction DoEvents renvoie le nombre de feuilles Visual Basic ouvertes uniquement si l'application hôte est Visual Basic.

' Crée une variable pour maintenir le nombre de
' feuilles Visual Basic chargées et visibles.
Dim I, OpenForms
For I = 1 To 150000   ' Lance la boucle.
   If I Mod 1000 = 0 Then    ' Lorsque la boucle s'est
                           ' répétée 1000 fois.
      OpenForms = DoEvents   ' Cède le contrôle au
                           ' système d'exploitation.
   End If
Next I   ' Incrémente le compteur de boucle.


A+
Exploreur

 
Commenter la réponse de cs_Exploreur
Messages postés
6
Date d'inscription
vendredi 29 avril 2005
Statut
Membre
Dernière intervention
19 avril 2007
0
Merci
A ba merde parce qu'en faite je ping 255 adresses dans une boucle.


C'est vrai que DoEvents m'a quand meme permis de gerer un peu mieux cela mais il arrive tout de meme que mon bouton exit ne marche pas.


Ou alors il faut que j'insiste un peu sur le bouton. Il n'y a vraiment pas de solution ?
Commenter la réponse de cs_felipe99
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
28
0
Merci
met un doevents entre chaque ping

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Commenter la réponse de cs_casy
Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
7 novembre 2014
13
0
Merci
C'est ce qu'il fait, pour autant un prog ne doit pas figer tout le temps que peut prendre un ping, XP ou Vista va virer le prog avec l'habituel "le programme ne répond pas".

ciao...
BruNews, MVP VC++
Commenter la réponse de BruNews
Messages postés
6
Date d'inscription
vendredi 29 avril 2005
Statut
Membre
Dernière intervention
19 avril 2007
0
Merci
Ouais c'est un peu cela et ca me pose un probleme car quand l'adresse ne repond pas ca prend du temps.
Commenter la réponse de cs_felipe99