OVH Cloud OVH Cloud

Thread

2 réponses
Avatar
Makmaze
Bonjour,
je dois créer des threads dans mon application mais le problème c'est
que dès que la fonction qui est dans le thread appelle une API ou même
une msgbox j'ai une erreur qui fait planter mon programme du genre :
"L'instruction à .... emploie l'adresse mémoire ....... La mémoire ne
peux pas être "read". Cliquez sur Ok pour terminer le programme."

Par contre cette erreur n'apparaît pas quand j'exécute mon programme
avec Visual Basic mais dès que je compile l'exécutable et que je le
lance, à la création du Thread j'ai droit à cette erreur.

Quelqu'un à déjà réussi à faire fonctionner des thread sous VB6 qui
utilisent une API ?
Merci pour tous aide.

2 réponses

Avatar
François Picalausa
Bonjour/soir,

La création de thread n'est ni supporté et ni recommandé en VB pour cette
raison d'instabilité

A noter toutefois, le livre de Matthew Curland offrant des librairies de
code permettant de gérer les threads à partir d'une application VB.
www.powervb.com

Il est aussi à remarquer que le comportement de l'application, lors de
l'utilisation de threads change si cette application est compilée ou non en
P-Code

Il est aussi possible de faire du multi-threading en employant des activeX
exe (http://faq.vb.free.fr/index.php?question8)

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com


Makmaze wrote:
Bonjour,
je dois créer des threads dans mon application mais le problème c'est
que dès que la fonction qui est dans le thread appelle une API ou même
une msgbox j'ai une erreur qui fait planter mon programme du genre :
"L'instruction à .... emploie l'adresse mémoire ....... La mémoire ne
peux pas être "read". Cliquez sur Ok pour terminer le programme."

Par contre cette erreur n'apparaît pas quand j'exécute mon programme
avec Visual Basic mais dès que je compile l'exécutable et que je le
lance, à la création du Thread j'ai droit à cette erreur.

Quelqu'un à déjà réussi à faire fonctionner des thread sous VB6 qui
utilisent une API ?
Merci pour tous aide.


Avatar
Makmaze
"François Picalausa" a écrit avec sa plus belle
plume :

Il est aussi possible de faire du multi-threading en employant des activeX
exe (http://faq.vb.free.fr/index.php?question8)



Merci,
j'ai mis ma fonction a exécuté en tache de fond dans un activeX exe.

Dans mon programme principal quand je veux utilisé ma fonction qui se
trouve dans l'activex je fais :

---------
Dim mon_objet As Object
Set mon_objet = CreateObject("le_nom_de_mon_activeX.ma_classe")

mon_objet.ma_fonction ()

---------

La fonction s'exécute bien mais le reste du programme ne s'exécute pas
tant qu'elle n'est pas terminé. Je m'y prend sûrement mal, mais je ne
vois pas comment faire. Tu n' aurais pas un exemple de code ?
--
Toi aussi accedes à la plénitude avec le Shaolingsu
http://tatv.free.fr