THREADS

cs_cosmic Messages postés 61 Date d'inscription mercredi 30 octobre 2002 Statut Membre Dernière intervention 16 mai 2005 - 28 nov. 2002 à 13:45
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
29 nov. 2002 à 07:36
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
28 nov. 2002 à 19:51
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
28 nov. 2002 à 19:24
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 608 Date d'inscription samedi 3 août 2002 Statut Membre Dernière intervention 22 décembre 2016
28 nov. 2002 à 17:48
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
28 nov. 2002 à 14:59
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
28 nov. 2002 à 13:45
Qu'est-ce que des THREADS?
Compilé en P-CODE, qu'est-ce que ça change par rapport au autres types de compilations?
Rejoignez-nous