Transmettre plusieurs paramètre dans un thread

Programmation d'applications complexes
julien
Messages : 846
Inscription : ven. 30/janv./2004 15:06
Contact :

Transmettre plusieurs paramètre dans un thread

Message par julien »

Code : Tout sélectionner

Procedure envoie_client(va$,vb$)
Debug va$
Debug vb$
EndProcedure


;envoie_client("A","B")  ;<- la cok A et B sont transmis

CreateThread(@envoie_client(),"A")  ; <- y'a que la A qui est transmis

Comment il faut faire pour tansmettre plusieurs paramètres dans un Thread ? :)
Heis Spiter
Messages : 1092
Inscription : mer. 28/janv./2004 16:22
Localisation : 76
Contact :

Message par Heis Spiter »

Code : Tout sélectionner

CreateThread(@envoie_client(),"A" And "B")
? Chez moi PB n'a rien dit, et Windows non plus...
Heis Spiter, webmaster du site http://www.heisspiter.net
Développeur principal et administrateur du projet Bird Chat
Parti courir au bonheur du dév. public et GPL :D
julien
Messages : 846
Inscription : ven. 30/janv./2004 15:06
Contact :

Message par julien »

ça plante le log se ferme sans message d'erreur
Avatar de l’utilisateur
cederavic
Messages : 1338
Inscription : lun. 09/févr./2004 23:38
Localisation : Bordeaux

Message par cederavic »

Code : Tout sélectionner

Procedure envoie_client(h$) 
Debug StringField(h$, 1, " ")
Debug StringField(h$, 2, " ")
Debug StringField(h$, 3, " ")
Debug StringField(h$, 4, " ")
Debug StringField(h$, 5, " ")
EndProcedure 

CreateThread(@envoie_client(), "1 2 3 4 5")

Repeat : ForEver ; sinon le sa ce ferme...
julien
Messages : 846
Inscription : ven. 30/janv./2004 15:06
Contact :

Message par julien »

cederavic a écrit :

Code : Tout sélectionner

Procedure envoie_client(h$) 
Debug StringField(h$, 1, " ")
Debug StringField(h$, 2, " ")
Debug StringField(h$, 3, " ")
Debug StringField(h$, 4, " ")
Debug StringField(h$, 5, " ")
EndProcedure 

CreateThread(@envoie_client(), "1 2 3 4 5")

Repeat : ForEver ; sinon le sa ce ferme...

Pareille ça plante sans message d'erreur
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Un pointeur vers une structure:

Code : Tout sélectionner

Structure donnee
  x.l
  y.l
EndStructure

Procedure envoie_client(*pointer.donnee) 
  Debug *pointer\x
  Debug *pointer\y 
EndProcedure 

envoie.donnee
envoie\x=11
envoie\y=22

*pointeur.donnee=@envoie
;CreateThread(@envoie_client(),*pointeur) 
CreateThread(@envoie_client(),@envoie) 

Delay(3000)
Avatar de l’utilisateur
cederavic
Messages : 1338
Inscription : lun. 09/févr./2004 23:38
Localisation : Bordeaux

Message par cederavic »

ben chez moi ça plante pas...
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Cedravic,

Moi, ça a planté et JaPbe met un temps fou à compiler maintenant! :?

De toute façon, la fonction attend un Dword (pointeur ou variable), avec le pointeur, tu lui communiques toutes les infos que tu veux.
Fred
Site Admin
Messages : 2808
Inscription : mer. 21/janv./2004 11:03

Message par Fred »

C'est la version de 'Nico' qui est la plus clean, donc que je recommande. Va falloir que je mette ca dans la doc, c'est important.
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

une question à propos de ces threads :wink: , si on utilise des globals, c'est bon ou mauvais car j'ai souvent des problèmes avec les threads. ça peut venir de la ?
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Fred
Site Admin
Messages : 2808
Inscription : mer. 21/janv./2004 11:03

Message par Fred »

Si tes threads utilisent les meme globales, c'est pas bon du tout (sauf si tu fais que de la lecture).
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

d'accord :) merci
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Répondre