cs_marco62118
Messages postés176Date d'inscriptionmercredi 7 avril 2004StatutMembreDernière intervention 1 avril 2013
-
18 juin 2008 à 00:08
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 2014
-
18 juin 2008 à 13:35
bonjour à toutes et tous
est ce que avec VB6 on peut faire du traitement "multithread"?
je voudrais faire en arrière plan un chargement de dictionnaire assez volumineux et en premier plan faire apparaitre une animation pour patienter pendant le chargement.
je n'ai aucune idée de comment ça peut fonctionner
merci d'avance
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 18 juin 2008 à 01:24
Salut
Oui, on peut le faire mais c'est assez complexe, surtout que, une fois un process détaché, il est compliqué d'inter-agir avec.
As-tu tapé "thread" dans le moteur de recherche ? Il y a la réponse.
Une solution serait de gérer le rythme de chargement de ton fichier.
Comme on ne connait pas ta méthode de chargement, difficile de t'aiguiller.
Pense aux DoEvents dans les boucles si tu veux que Windows puisse gérer les évènements d'un Timer d'animation, par exemple
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
cs_Megafan
Messages postés389Date d'inscriptiondimanche 7 avril 2002StatutMembreDernière intervention23 septembre 20162 18 juin 2008 à 08:31
SAlut,
De maniére relativement simple, dans vb6 tu peux utliser des timers pour 'simuler' des threads.
Dans ta fonction principale tu charges ton dicos et dans le timer l'animation
N'oublie pas d'utiliser des doevents à tout va.
@+
Megafan
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 18 juin 2008 à 13:35
VB6 n'est pas prévu pour faire du multithreading.
Mais comme le dit Jack, il est possible de faire du multithreading.
C'est compliqué et généralement l'application ainsi développée est très instable. C'est pour cela que généralement il est dit que ce n'est pas possible.
La méthode de l'ActiveX est une solution déguisée de faire du multithreading. Ce n'est pas du vrai multithreading au sens ou on l'entend généralement en programmation (avec gestion, etc...), c'est juste que la pluspart du temps un activeX est executé dans son propre thread. Ca peut résoudre certains problèmes, mais c'est pas vraiment élégant.