Multithread comment ça marche ?

Signaler
Messages postés
176
Date d'inscription
mercredi 7 avril 2004
Statut
Membre
Dernière intervention
1 avril 2013
-
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
-
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

<!-- / message -->

5 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
76
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)
Messages postés
492
Date d'inscription
jeudi 5 avril 2007
Statut
Membre
Dernière intervention
2 juillet 2012
3
Bonjour à vous deux,
Dans l'aide VB6 tu tape..
Création d'une DLL ActiveX
C'est un petit cour sur la programmation en multitrhead.
A+
Messages postés
389
Date d'inscription
dimanche 7 avril 2002
Statut
Membre
Dernière intervention
23 septembre 2016
2
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
Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
4
ton animation est en quel format??
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
38
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.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php