EXEMPLE D'APPLICATION MULTITHREAD

cs_eldim Messages postés 956 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 21 août 2014 - 5 avril 2006 à 14:01
Philippe734 Messages postés 308 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 15 juin 2015 - 1 mai 2010 à 16:08
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/36909-exemple-d-application-multithread

Philippe734 Messages postés 308 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 15 juin 2015 1
1 mai 2010 à 16:08
L'usage du multithreading est certes déconseillé et souvent instable dans vb6 mais pas impossible. Cependant, l'usage de cette méthode, qui repose sur l'api CreateThread est obsolète aujourd'hui. Je vous recommande d'utiliser la méthode reposant sur l'api SHCreateThread dont voici un exemple ci-dessous. Allez dans ses commentaires, car j'explique comment faire réduire les risques de crash sous vb6 sp6.
Voir la source :
http://www.vbfrance.com/codes/SIMPLE-PROGRAMME-MULTI-THREAD_5590.aspx
cs_jipef Messages postés 55 Date d'inscription lundi 23 août 2004 Statut Membre Dernière intervention 1 août 2008
23 août 2008 à 10:11
ça plante en exe que ce soit en pcode ou pas !!
avez vous d'autres solutions ??
cs_MasterHack Messages postés 586 Date d'inscription jeudi 18 septembre 2003 Statut Membre Dernière intervention 13 février 2008 2
5 avril 2006 à 22:50
salut,
tant de penne pour un multithread , voici une fonction qui vous facilitera la vie:
SHCreateThread
a+++ les amis
thel0rd Messages postés 14 Date d'inscription lundi 16 février 2004 Statut Membre Dernière intervention 20 janvier 2012
5 avril 2006 à 15:05
ça plante pas (en vb5)... faut essayer avant d'affirmer :) j'insiste, oui , c'est vrai, ça tient qu'a un fil et il faut etre sur de ce qu'on code. Par contre évitons ensemble les allegations douteuses sans avoir vérifié au préalable thx ;)
cs_eldim Messages postés 956 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 21 août 2014 1
5 avril 2006 à 14:56
lol
pas en vb.net (mais c'est plus vraiement du vb...)
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
5 avril 2006 à 14:48
Avec le multithread (en VB), on ne sait jamais quand mais une chose est sûre : ça plantera !!!
thel0rd Messages postés 14 Date d'inscription lundi 16 février 2004 Statut Membre Dernière intervention 20 janvier 2012
5 avril 2006 à 14:21
Evidemment, FeelCode tu as raison aussi quand tu dis qu'il ne faut utiliser le threading que lorsqu'on en a besoin, mais un bon handling des erreurs et ça reste assez stable. Je l'utilise pour tout ce que je fais necessitant un traitement "lourd" d'information. D'ailleurs si tu peux me donner le lien de ton code que je jette un oeil, je n'ai jamais une seule source en vb qui permette de threader sans accroc en passant une valeur a lParameter, et en vb6 je crois même pas que ce soit possible sans plantage.
FeelCode Messages postés 278 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 27 avril 2006 1
5 avril 2006 à 14:14
il faut compiler en Pcode et non en natif ou l'inverse je me souvient plus, et enfin pour passer les argument je dirai qu'il vaut mieut passer par un variable public pour contourner le probleme.
thel0rd Messages postés 14 Date d'inscription lundi 16 février 2004 Statut Membre Dernière intervention 20 janvier 2012
5 avril 2006 à 14:10
VB5 uniquement, en vb6 ça crash sans arret, au maximum tu peux threader une sub, mais des qu'il passer un argument c'est foutu...
J'ajoute par la même occasion qu'il est possible de débugguer la source avec l'IDE de vb5, mais pas step by step. alors vous me direz quelle utilité? ben en mode debug vous aurez au moins le message d'erreur de vb avant que l'IDE plante donc on peut quand même fixer. en compilé, une erreur dans la thread et c'est un plantage sans aucune forme de remerciement. Il vaut mieux etre sur a 100% de sa foncton avant de la threader.
FeelCode Messages postés 278 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 27 avril 2006 1
5 avril 2006 à 14:06
bof existe deja et dasn pas mal d'exemple don mon source....
bref sans grand interer ,a part que je dirait que : le multi tread c est vraiment a eviter dans la mesure du possible. si dans certaine situation on ne peut faire autrement par ex une boucle infinie velontaire pour faire un control sur quelque chose.
sinon doevents est peut etre un peut lent mai a ce moment la on peut faire un teste par exemple faire 1 doevents sur 100 passage de boucle
de plus un tread c est pas vraiment bien decharger un foit terminer
cs_eldim Messages postés 956 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 21 août 2014 1
5 avril 2006 à 14:01
Bonjour,

L'idée semble bonne mais effectivememt ça ne fonctionne pas en vb6...
Alors en quelle version de vb cela fonctionne-t-il ? (car cela ne ressemble pas à du vb.net...)
Rejoignez-nous