Problème avec GetTickCount -> freeze.

le_highlander Messages postés 19 Date d'inscription dimanche 18 janvier 2004 Statut Membre Dernière intervention 12 septembre 2005 - 4 sept. 2005 à 10:42
le_highlander Messages postés 19 Date d'inscription dimanche 18 janvier 2004 Statut Membre Dernière intervention 12 septembre 2005 - 4 sept. 2005 à 12:50
Bonjour,



J'ai un petit problème avec GetTickCount



J'ai :

Declare Function GetTickCount Lib "kernel32" () As Long

et la partie de code qui freeze :

Tinitial = GetTickCount

toto=Test("toto")

TempsMis = GetTickCount - Tinitial



La fonction Test peut prendre entre 0 et 120 secondes. et je pense que c'est ça qui fait freezer cette partie de code.



J'ai lu sur le forum l'utilisation de DoEvents. Si c'est la bonne fonction, je dois le mettre où ?!?



Merci d'avance !

10 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
4 sept. 2005 à 10:51
A l'interieur de la fonction 'Test' puisque c'est elle qui prend du temps.

ciao...
BruNews, MVP VC++
0
le_highlander Messages postés 19 Date d'inscription dimanche 18 janvier 2004 Statut Membre Dernière intervention 12 septembre 2005
4 sept. 2005 à 11:34
ooohh. ca marche. Par contre, ça ne falsifie pas mon résultat de la variable TempsMis ?

Car si il rend la main au reste, il va calculer TempsMis et donc TempsMis va être faux, non ?



De la même manière, si dans la suite du programme, je fais appel au
résultat de la fonction Test, ça ne risque pas de bugger en sachant que
toto n'aura pas encore été défini ?!?
0
le_highlander Messages postés 19 Date d'inscription dimanche 18 janvier 2004 Statut Membre Dernière intervention 12 septembre 2005
4 sept. 2005 à 11:44
oui je confirme. la suite plante parce que toto n'a pas encore été attribué ...

j'ai essayé à tout hasard en mettant un DoEvents juste après le calcul de TempsMis, mais ça ne marche toujours pas. Ca refreeze.
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
4 sept. 2005 à 11:47
Pour sur que ça change les temps de calcul mais faut savoir ce que l'on veut, c'est un prog utilisateur donc on donne le vrai temps employé tenant compte de ses interactions ou alors on fait un prog de benchmark et en ce cas vb n'est plus adapté.

ciao...
BruNews, MVP VC++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
le_highlander Messages postés 19 Date d'inscription dimanche 18 janvier 2004 Statut Membre Dernière intervention 12 septembre 2005
4 sept. 2005 à 11:52
il n'y a pas la possibilité de mettre un truc du genre : wait until function Test finished ?



ou encore, ne rends pas la main tant que la fonction n'a pas finie de s'exécuter ?
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
4 sept. 2005 à 11:55
enlève DoEvents et le prog n'aura plus la main, on retourne au début de ton post à ce point, non ?

ciao...
BruNews, MVP VC++
0
le_highlander Messages postés 19 Date d'inscription dimanche 18 janvier 2004 Statut Membre Dernière intervention 12 septembre 2005
4 sept. 2005 à 12:00
on dirait bien :)

Mais la fonction exécutait toute seul prend moins de 10 secondes.

La fonction entourée d'un GetTickCount freeze complétement et ne m'a toujours pas rendu la main au bout de 10 minutes.

Si ce n'était que ça, je virerais le GetTickCount mais le problème se
renouvelle dans la suite du programme surement parce que 'Test' n'a pas
fini de s'exécuter.
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
4 sept. 2005 à 12:03
Test n'a pas fini de s'exécuter ??? tu es en .net ? en vb6 par force finira avant quoi que ce soit d'autre car vb ignore les threads.

ciao...
BruNews, MVP VC++
0
le_highlander Messages postés 19 Date d'inscription dimanche 18 janvier 2004 Statut Membre Dernière intervention 12 septembre 2005
4 sept. 2005 à 12:36
désolé. je ne m'y connais pas assez en .net, VB6 pour te dire ce que j'utilise.

J'utilise VBA Access (version 2000).
0
le_highlander Messages postés 19 Date d'inscription dimanche 18 janvier 2004 Statut Membre Dernière intervention 12 septembre 2005
4 sept. 2005 à 12:50
euh ... je m'excuse maintenant ??? après ??? ou je vais me cacher ?



bon ben là ça freeze plus .........



pourtant j'ai rien changé, j'ai juste renlevé le DoEvents.



peut etre y avait-il un autre bug qui faisait freezer. bizarre bizarre !



en tout cas, merci de ton aide !
0
Rejoignez-nous