Bonjour,

Actuellement, je cherche à comprendre le fonctionne des threads pour arriver à mon but, qui est la comprehension des sémaphores ainsi que les mutex.

Le hic, c'est que je suis loin d'avoir compris quoi que ce soit je crois
Alors, voilà mon soucis.

Je suis entrain de lire le PDF sur les threads de Laurent Berne et j'en suis à ses début.

Je crée mon thread comme ci dessous :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
unit Unit2;
 
interface
 
uses
  Classes,Dialogs;
 
type
  thread1 = class(TThread)
  private
    { Déclarations privées }
  protected
    procedure Execute; override;
  end;
 
implementation
 
{ Important : les méthodes et propriétés des objets de la VCL peuvent uniquement
  être utilisés dans une méthode appelée en utilisant Synchronize, comme :
 
      Synchronize(UpdateCaption);
 
  où UpdateCaption serait de la forme 
 
    procedure thread1.UpdateCaption;
    begin
      Form1.Caption := 'Mis à jour dans un thread';
    end; }
 
{ thread1 }
 
procedure thread1.Execute;
begin
  ShowMessage('OK! Thread créé');
end;
 
end.
Puis, l'appel comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,Unit2, StdCtrls;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;
 
var
  Form1: TForm1;
  MonThread:thread1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  MonThread:=thread1.Create(false);
end;
 
end.
Le hic, c'est que ma méthode ne fonctionne pas (ShowMessage) alors que la méthode de Laurent Berne (MessageBox) fonctionne ...
Quelqu'un peut m'expliquer le pourquoi ?

Merci bien

PS: En fait, le thread me fait des fenêtres non complète ... Rare sont les fois où ça fonctionne correctement...