Page 1 sur 1

Comprendre comment utilisé les Threads

Publié : mar. 11/avr./2006 20:51
par Ulix
Dans l'aide sur les instructions concernant les Threads, il y a écrit ceci :
"Cela signifie qu'il est possible d'effectuer certaines opérations longues (compression, manipulation d'images ...) sans interrompre l'ensemble du programme, et de laisser ainsi l'utilisateur effectuer d'autres tâches."
C'est ce qu'il me faut ! Je m'explique !
J'ai une procedure de pagination (Calcule du nombre de page en fonction de la longueur du texte, de la largeur d'impréssion et de la fonte utilisé).
Je désire faire tournée cette procedure en arriére plan, afin de récupére le nombre de page sans avoir a (trop) attendre la fin de la procedure.

L'appel de ma procedure est la suivante :

Code : Tout sélectionner

		GetNombrePage(Texte$, LargeurImpression.l, Font.l)
et la création d'un Treads selon l'aide :
Thread = CreateThread(@NomdeProcedure(), Valeur)
Mais comment passé mes arguments; (Texte$, LargeurImpression.l, Font.l) a la procédure GetNombrePage, tous en créant un thread ? :oops:


Apparemment il n'est pas possible de faire ceci :

Code : Tout sélectionner

 		Thread = CreateThread(@NomdeProcedure(Texte$, LargeurImpression.l, Font.l), Valeur)
Alors comment passé les arguments :

- par des variables déclare en globales ?
- par une structure ?

Si quelqu'un pouvait éclairé ma lanterne !
Merci d'avance !

Publié : mar. 11/avr./2006 21:56
par erix14
Utilise les structures :

Code : Tout sélectionner

Structure Param
     Texte.s 
     LargeurImpression.l 
     Font.l
EndStructure
Procedure MonThread(*Param.Param)
     Delay(8000)
     Debug *Param\Texte
     Debug *Param\LargeurImpression
     Debug *Param\Font
EndProcedure

Param.Param\Texte = "toto"
Param\LargeurImpression = 1
Param\Font = 2
CreateThread(@MonThread(), @Param)

MessageRequester("Info", "Dans 8 secondes le Thread va afficher"+Chr(10)+"les paramètres grâce au débogueur.", 0) 

Publié : mer. 12/avr./2006 9:26
par Ulix
Merci Erx14 !

Je m'en douté, seulement je n'arrivais pas formulé par écrit le code.
Je pense qu'un exemple de ce type de tranfert de données ou d'arguments devrait faire partie d'un exemple dans l'aide.

Si RegisLG ou Comtois qui travail sur la mise a jours de l'aide lisent ces lignes, peut-être peuvent-ils y songés ?

A+

Publié : mer. 12/avr./2006 17:59
par Backup
"La théorie c'est quand rien ne marche et qu'on comprend tout, la pratique c'est quand tout fonctionne et que l'on ne sait pas pourquoi."
Albert EINSTEIN
il manque toujours la suite de cette phrase a ta signature :D
la voici :

" ici , nous avons reuni les deux ,la theorie et la pratique
rien ne fonctionne , et on ne sais pas pourquoi !! "

:lol: :lol: :lol: :lol: :lol: :lol: