Section courante

A propos

Section administrative du site

ISMULTITHREAD

Est-ce un multi-processus
Delphi/Kylix/Lazarus System

Syntaxe

Var IsMultiThread:Boolean;

Description

Cette variable permet d'indiquer si l'application a ajouter d'autres processus léger à l'aide de la fonction BeginThread.

Remarque

Exemple

Voici un exemple montrant comment lancer deux processus fils :

  1. Program IsMultiThreadSamples; 
  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:Cardinal;
  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.  If Not(IsMultiThread)Then WriteLn('Il n''y a pas de programmes fils');
  31.  I:=0; 
  32.  Fork1.Msg := 'Le programme fils 1!'; 
  33.  Fork2.Msg := 'Le programme fils 2!'; 
  34.  Thread1 := BeginThread(NIL,0,@MyFork,@Fork1,0,Id1); 
  35.  Thread2 := BeginThread(NIL,0,@MyFork,@Fork2,0,Id2); 
  36.  If(IsMultiThread)Then WriteLn('Il y a des programmes fils');
  37.  WriteLn('Le programme parent!'); 
  38.  Repeat Until I >= 2; 
  39. END.

on obtiendra le résultat semblable suivant :

Il n'y a pas de programmes fils
Le programme fils 1!
Le programme fils 1!
Il y a des programmes fils
Le programme parent!
Le programme fils 2!

Voir également

Langage de programmation - Delphi/Kylix/Lazarus - Référence de procédures et fonctions - BeginThread
Langage de programmation - Delphi/Kylix/Lazarus - Référence de procédures et fonctions - EndThread
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