Les thread

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
andrebernard
Messages : 58
Inscription : jeu. 22/déc./2005 11:23

Les thread

Message par andrebernard »

Bonjour

J'entend beaucoup parler de THREAD.
J'ai lu la petite doc de pure qui en parle, j'ai fouiné dans le forum, mais beaucoup de questions restent sans reponses.

1/ Ya t'il une frontiere d'OS de W95 a XP pour les utiliser ?
2/ Ya t'il une frontiere de processeur pour les utiliser ou bien n'importe quel PC 386 au P4 peut fonctionner avec les THREAD ?
3/ Est il plus perturbant d'avoir un exe avec des THREAD créé en PB pour les autres applications qui tournent sur la même machine, comme les monstres de pack office, etc ...
4/ Quel sont les désavantages des THREAD ? sur l'application elle-meme et sur le PC en général.
5/ Peut on creer autant de THREAD que l'on desire ?
6/ J'ai lu qu'il ne fallait jamais "killer" un THREAD en cours, mais une fois fini, ne reste t-il aucune trace en mémoire ?

Voila les premieres questions qui me viennent à l'esprit, si quelqu'un connait un TUTO français sur ce sujet ou bien peut m'éclairer sur toutes ces incertitudes, je lui en serais tres reconnaissant.

je doit creer une appli qui aurais besoin de ces THREAD, mais je ne veut pas baser tout mon prog sur cette fonction sans en connaitre les inconvénients et avantages.

Merci.
olivier
Messages : 305
Inscription : mer. 05/janv./2005 12:58
Localisation : http://www.tib-net.com/meca/index.htm

Message par olivier »

Salut,

J'ai utiliser quelque thread dans mes progs et je reponds à tes intérrogation dans la limite de mes experiences.

1/ OK sur win 98, sur 2k et sur XP
2/ OK sur p2 300 Mhz ; P3 1.8
3/ Pas eu de problème
4/ Le débuggage est des fois un peu pénible car le debuggeur suit le prog principale et non la thread.
5/ ?
6/ Tu peux killer un thread mais ce n'est pas jolie

Et voici un petit exemple pour info et pour te donner la combine pour connaitre la fin d'un thread avec un postmessage

Code : Tout sélectionner

Procedure ThreadTest(Para)
     For i=1 To 200
          Delay(10)
          SetWindowTitle(0,Str(i))
     Next
     PostMessage_(WindowID(0),#WM_user+1,1,1)
EndProcedure

OpenWindow(0, 0, 0, 150, 150, "Test", #PB_Window_SystemMenu  | #PB_Window_MinimizeGadget | #PB_Window_ScreenCentered)
CreateGadgetList(WindowID( 0))
ButtonGadget(1,10,10,100,20,"Lance thread")   

ButtonGadget(3,10,50,100,20,"Kill thread") 


Repeat
     event = WaitWindowEvent()
     Select event
          Case #PB_Event_Gadget
               Select EventGadget()
                    Case 1
                         threadID=CreateThread(@ThreadTest(),Para)
                 
                         
                    Case 3
                         KillThread(threadID)
               EndSelect
               
          Case #WM_user+1
               MessageRequester("Yes","Thread Terminé")
          Case #WM_CLOSE
               quit=1
               
     EndSelect
     
Until quit=1
End
Vive le temps libre !
andrebernard
Messages : 58
Inscription : jeu. 22/déc./2005 11:23

Message par andrebernard »

Merci cela me donne deja des indications importantes.
Je vais faire des essais.

Excelente journée a toi.
Répondre