Thread simple

Soyez le premier à donner votre avis sur cette source.

Vue 11 205 fois - Téléchargée 1 007 fois

Description

Voici ce ke j'ai commencé a apprendre sur les thread en delphi,

Source / Exemple :


// ajouter ce type en haut
//c kom pour une form, vous pouvez ajouter des procedure ou des fonction dans ce thread kom vous le voulez; TBoucle -> mais vous pouvez mettre ce ke vous voulez
TBoucle = class(TThread)
private
  procedure Affiche();
protected
  procedure Execute();override;
public
  constructor Create();
end;
var //global
  Boucle:TBoucle;

//après c simple
//Pour démarrer le thread, il faut appeler create:
Boucle := TBoucle.Create

//create obligatoirement ces lignes présentes : 
constructor TBoucle.Create;
begin
inherited Create(false);
FreeOnTerminate := True;
//la priorité : par obligatoire
Priority := tpLower;
end;

//Pour Execute :
procedure TBoucle.Execute;
begin
// le code ke vous voulez! 
//ce code sera effectué sans bloqué le reste du progs, vous pouvez mettre un boucle !
//Si vous devez modifier des infos sur un controle, il faut utiliser un truk intermediaire.
//en gros: faire les modif dans des valeurs, et appelé une fonction ki affiche ces valeurs.
//Mais il faut l'appeler kom ca:
Synchronize(Affiche); //par exemple
end;
 
//Pour terminer le thread: (a mettre dans onclose par exemple)
Boucle.Terminate;

Conclusion :


voila,

ca parait compliqué, mais c pourtant simple, regarder le zip pour un exemple concret
ce petit exemple n'est surement pas le meilleur, car il doit mal expliquer et il ne comporte pas toutes les possibilités des thread,.. mais c deja un début !

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_Gerard
Messages postés
121
Date d'inscription
jeudi 10 janvier 2002
Statut
Membre
Dernière intervention
7 août 2018

J'ai utilisé et cela marche tout seul.
C'est excellent quand on utilise Indy, car ainsi on garde la main, même en cas de non réponse du serveur et on peut interrompre le processus.
cs_gamez
Messages postés
34
Date d'inscription
samedi 14 juin 2003
Statut
Membre
Dernière intervention
27 janvier 2007

jai trouvé lexplication, mais maintenant jai un autre truc qui me tracasse

jai supprimé ta procedure tboucle.affiche
et ds la procedure tboucle.execute au lieu de faire le synchronize(affiche) je mets le code qui etait dans la procedure affiche a cet endroit
en faisant ca, ca marche sans probleme.
ds ce cas à quoi sert donc le synchronize et le tboucle.affiche??

merci
cs_gamez
Messages postés
34
Date d'inscription
samedi 14 juin 2003
Statut
Membre
Dernière intervention
27 janvier 2007

jai une autre question

jai repris ce zip tel quel, jai ajouté un composant indy (TidTCPClient) je suis allé dans la procedure Tboucle.execute et là... le idtcpclient1 nest pas reconnu jai un message qui me dit quil nest pas déclaré pourtant il est bien reconnu qd je le mets au debut du prog.

qqun a une explication?

merci
cs_gamez
Messages postés
34
Date d'inscription
samedi 14 juin 2003
Statut
Membre
Dernière intervention
27 janvier 2007

merci pour ta reponse
mais qd tu dis que la procedure est appelée automatiquement, coment on parametre son "declencheur"?
(je sais jai du mal mais bon..)
Bombela
Messages postés
225
Date d'inscription
mardi 4 mars 2003
Statut
Membre
Dernière intervention
30 juillet 2008

gamez, c'est simple, la procédure Execute est ovveride, ce qui veut dire quelle complète une procédure existante. Et dans le cas d'un objet Thread Delphi, cette procédure est appelée automatiquement.

@+

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.