Section courante

A propos

Section administrative du site

BEGINTHREAD

Débute un processus
Delphi/Kylix/Lazarus System

Syntaxe

Function BeginThread(SecurityAttributes:Pointer; StackSize:Integer; ThreadFunc:TThreadFunc; Parameter:Pointer; CreationFlags:Integer;Var ThreadId:Integer):Integer;
Function BeginThread(SecurityAttributes:Pointer; StackSize:Cardinal; ThreadFunc:TThreadFunc; Parameter:Pointer; CreationFlags:Cardinal;Var ThreadId:Cardinal):Integer;

Paramètres

Nom Description
SecurityAttributes Ce paramètre permet d'indiquer le pointeur des attributs de sécurité si nécessaire.
StackSize Ce paramètre permet d'indiquer la taille de la pile si nécessaire
ThreadFunc Ce paramètre permet d'indiquer l'adresse de la fonction contenant le processus
Parameter Ce paramètre permet d'indiquer le pointeur des paramètres supplémentaire.
CreationFlags Ce paramètre permet d'indiquer les attributs de création du processus.
ThreadId Ce paramètre permet d'indiquer le numéro d'identification du processus.

Description

Cette fonction permet de lancer un nouveau processus d'exécution.

Remarque

Exemple

Voici un exemple montrant comment lancer deux processus fils :

  1. Program BeginThreadSamples;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. Uses SysUtils;
  6.  
  7. Type
  8.  ForkData=Record
  9.   Msg:String;
  10.  End;
  11.  ForkDataPtr=^ForkData;
  12.  
  13. Var
  14.  Thread1, Thread2:Integer;
  15.  Id1,Id2:Integer;
  16.  Fork1,Fork2:ForkData;
  17.  I:Byte;
  18.  
  19. Function MyFork(Parameter:Pointer):Integer;
  20. Var
  21.  ForkData:ForkDataPtr Absolute Parameter;
  22. Begin
  23.  MyFork := 0;
  24.  Inc(I);
  25.  WriteLn(ForkData^.Msg);
  26.  EndThread(0);
  27. End;
  28.  
  29. BEGIN
  30.  I:=0;
  31.  Fork1.Msg := 'Le programme fils 1!';
  32.  Fork2.Msg := 'Le programme fils 2!';
  33.  Thread1 := BeginThread(NIL,0,@MyFork,@Fork1,0,Id1);
  34.  Thread2 := BeginThread(NIL,0,@MyFork,@Fork2,0,Id2);
  35.  WriteLn('Le programme parent!');
  36.  Repeat Until I >= 2;
  37. END.

on obtiendra le résultat semblable suivant :

Le programme parent!
Le programme fils 1!
Le programme fils 2!

Voir également

Langage de programmation - Delphi/Kylix/Lazarus - Référence de procédures et fonctions - EndThread
Langage de programmation - Delphi/Kylix/Lazarus - Référence des variables - IsMultiThread
Langage de programmation - Delphi/Kylix/Lazarus - Références de mots réservés (mots clefs) - ThreadVar

Dernière mise à jour : Mercredi, le 18 février 2015