THREADS

Messages postés
61
Date d'inscription
mercredi 30 octobre 2002
Statut
Membre
Dernière intervention
16 mai 2005
- - Dernière réponse : cs_epoc
Messages postés
87
Date d'inscription
mardi 28 mai 2002
Statut
Membre
Dernière intervention
25 octobre 2006
- 29 nov. 2002 à 07:36
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/5196-threads

cs_epoc
Messages postés
87
Date d'inscription
mardi 28 mai 2002
Statut
Membre
Dernière intervention
25 octobre 2006
-
wep en effet, l'exemple n'en est pas vraiment un, je v essayer d'en préparer un un peu plus parlant.
Proger
Messages postés
248
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
19 décembre 2008
-
Afyn > oui et non....

Il existe une api qui prélève une valeur de temps. En prélèvant le temps à un autre moment, par calcul on obtient la durée qui s'est écoulé entre les deux.
GetTickCount prélève des millisecondes, soit 1000 par seconde
QueryPerformanceCounter renvoi un "truc, et QueryPerformanceFrequency indique le nombre de "truc" qui s'écoule pendant 1 secondes (chez moi j'en ai 3579545 par seconde) donc par calcul on peut en déduire le temps.
Sous vb, en appelant 2 fois de suite cet api j'obtient 1,03 µs écoulé entre les deux. Bref la microseconde est possible, mais rien que l'appel à une fonction dure déjà une microseconde. Ainsi, en codant un équivalent de sleep avec QueryTruc, on peut espérer une résolution de 10 microsecondes...

J'enverrai une source demain ça sera mieux qu'en commentaire
couriousous
Messages postés
68
Date d'inscription
lundi 21 mai 2001
Statut
Membre
Dernière intervention
4 janvier 2003
-
ouai... les thread evc VB6 c bien beau mais dès que tu utilise un objet ( tel que winsock ) ca plante total!!! la seule solution c'est d'utiliser les API.... snif
Afyn
Messages postés
613
Date d'inscription
samedi 3 août 2002
Statut
Membre
Dernière intervention
22 décembre 2016
-
La fonction sleep est en milliseconde, y a t'il une fonction équivalente en microseconde ?

A+
AFYN
NAVEDAC
Proger
Messages postés
248
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
19 décembre 2008
-
Copie le code source à la place d'écrire "ziiiiiiiiip" car vu la longueur de la source ce n'est pas utile de bourrer son dossier temp !

Cette source est excellente car elle montre :
- la création d'un thread secondaire
- le passage de paramètres à un thread secondaire
- l'utilisation de waitforsingleobjet pour "synchronisé" l'application avec le déroulement d'un thread
par contre l'exemple est un peu bidon... 9/10

Thread ? pour faire simple : c'est un pointeur d'exécution (la ligne jaune quand tu fais ctrl+pause et F8 pour la faire avançé, c'est une sorte de pointeur d'exécution).
Crée un second thread et tu auras 2 pointeurs d'exécution, ce qui permet de faire des choses en même temps.
En VB on utilise doevents pour reprendre la main sur la form si on lance un gros traitement. Si tu lance le gros traitement dans un thread secondaire, plus besoin de doevents!

P-Code : ça ne compile pas le vb intégralement en langage asm (ni le code natif d'ailleur), et laisse les dll s'occuper de l'interprétation du "pseudo-code" ainsi créé.
Qui dit interpretation dit temps, donc le p-code est moins rapide que le code natif.
cs_cosmic
Messages postés
61
Date d'inscription
mercredi 30 octobre 2002
Statut
Membre
Dernière intervention
16 mai 2005
-
Qu'est-ce que des THREADS?
Compilé en P-CODE, qu'est-ce que ça change par rapport au autres types de compilations?