Do events! coment l'inserer dans plusieurs boucle

Résolu
j_aub
Messages postés
99
Date d'inscription
mercredi 25 août 2004
Statut
Membre
Dernière intervention
9 avril 2009
- 31 déc. 2005 à 16:34
cs_casy
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
- 31 déc. 2005 à 16:51
slt ttt le monde,

j'ai une fonction 'calcul()' (en vb.net) qui fait un calcul énorme ( en terme de temps d'éxecution) j'ai donc penser d'y inserer un DoEvents. mon problème c'est que ma fonction calcul() contien beaucoup de boucle imbriquées, genre:

while not i<100
while not j<1000
while not p<10000

p=p+1
end while
j=j+1
end while
i=i+1
end while
et donc je ne sais pas où dois-je insérer ma fonctio Application.DoEvents!!
help please

1 réponse

cs_casy
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
31 déc. 2005 à 16:51
Si ta fonction contient beaucoup de boucles imbriquées et que tes calculs prennent du temps, il serait jusdicieux de repenser ta fonction, elle ne doit pas etre très optimisée. Mais là n'est pas ta question.

Ou mettre le DoEvents ? J'aurais envie de dire ou tu veux.
Dans une boucle, c'est sur. Ensuite tout dépend du résultat que tu veux et du calcul que tu fait.
Dans la boucle la plus imbriquée, ton programme sera moins "bloqué" et donc plus réactif mais les calculs seront peut etre un peu plus long (car le DoEvents sera executé plus souvent).
Dans la premiere boucle, les calculs seront à peine plus long qu'actuellement, mais ton programme sera un peu moins réactif, il aura l'air un peu bloqué.

Mais sache que personnellement, j'ai toujours entendu dire que le DoEvents est une vilaine chose, soit il cache un code un peu pourris, soit il cache un bug. Mais là ou il y a un DoEvents, c'est que c'est mal codé, mais je l'utilise quand même quand je peux pas faire autrement.

PS: si ton code n'est pas trop long tu peux peut-etre le mettre pour qu'on t'aide. J'imagie que ce n'est pas celui que t'as mis en exemple

<hr size="2" width="100%">
3