Comprendre comment utilisé les Threads

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Ulix
Messages : 315
Inscription : ven. 04/juin/2004 14:27
Localisation : Frontignan

Comprendre comment utilisé les Threads

Message 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 !
erix14
Messages : 480
Inscription : sam. 27/mars/2004 16:44
Contact :

Message 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) 
Avatar de l’utilisateur
Ulix
Messages : 315
Inscription : ven. 04/juin/2004 14:27
Localisation : Frontignan

Message 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+
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message 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:
Répondre