Thread - Barre de progression (chargement de gros fichier)

jockos Messages postés 321 Date d'inscription dimanche 22 octobre 2000 Statut Membre Dernière intervention 14 mai 2005 - 16 sept. 2004 à 16:25
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 16 sept. 2004 à 17:20
Bonjour, j'ai une fonction qui sert à charger un fichier et à le traiter en mémoire bloc par bloc (afin de traiter des fichiers de plusieurs centaines de Mo).

Cette fonction est dans un contrôle ActiveX.

Et je l'appel depuis VB.
J'aimerais utiliser une barre de progression en VB.

J'avais fait une méthode qui marchait bien, mais on m'a conseillé de lancer ma grosse fonction C++ de traitement par un thread en me disant que c'était plus propre et plus performant (car j'utilisait un DoEvents dans ma fonction C++ tout les 15 blocs traité pour laisser respirer le système et permettre à VB d'interroger une fonction C++, une interface qui indiquant le pourcentage de traitement effectué, et ainsi j'affiichauis cela dans une progress barre...).

Vous avez une idée pour faire cela avec un thread ?

Merci...

3 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
16 sept. 2004 à 16:55
Multi thread en VB, ça plante 9 fois sur 10.

ciao...
BruNews, MVP VC++
0
jockos Messages postés 321 Date d'inscription dimanche 22 octobre 2000 Statut Membre Dernière intervention 14 mai 2005 2
16 sept. 2004 à 17:07
Comment ça ?

Tu veux dire qu'un contrôle ActiveX Multithreadé plantera à coup sûr si il est utilisé par VB ?

Dans ce cas, je vais conserver ma méthode qui marchait bien, c'est à dire avoir une interface (méthode de l'activeX) qui permet de connaitre le pourcentage de traitement effectué...
Et mon prog VB appel cette fonction tout les 200ms pour rafraichir la barre de progression....

Et pour que ça marche, je met un DoEvents dans ma fonction de traitement C++ tous les 15 blocs traités...

Et franchement, ce n'est pas super éléguant, mais au moins, ça marche...

Qu'en penses-tu BurNews...

Toi qui a toujours des bonnes idées, comment ferais-tu pour faire cela ?

Comme toujours, un grand merci pour on aide...

++
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
16 sept. 2004 à 17:20
Je pense que c'est nettement preferable car VB ignore tout des threads s'executant dans son processus, c'est casse gueule a tout coup.
Sinon serait da faire un module separe complet en C que tu lances depuis ton VB, la pas de prob car processus separe.

ciao...
BruNews, MVP VC++
0
Rejoignez-nous