Einzelnen Beitrag anzeigen

oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#5
  Alt 8. Apr 2003, 14:18
Hi,

ich hab schon mal gleiches Problem bearbeitet und folgenden Lösungsansatz gewählt.

Mein Thread beinhaltet ein Property vom Typ TNitifyEvent. Beim Terminieren des Threads rufe ich dieses Ereignis auf und meine Hauptanwendung bekommt die entsprechende Mitteilung. Ob dann ein Counter oder etwas anderes bearbeitet wird bleibt Dir überlassen.

Delphi-Quellcode:
type
  TMapThread = class(TThread)
  private
    { Private-Deklarationen }
    FIsSetObj : Boolean;
    FIsSetCon : Boolean;
    FOnFinish : TNotifyEvent;
  protected
    procedure ExecuTMapte; override;
  public
    property IsSetObject : Boolean read FIsSetObj write FIsSetObj;
    property IsSetCon : Boolean read FIsSetCon write FIsSetCon;
    property OnFinish : TNotifyEvent read FOnFinish write FOnFinish;
Wenn der Thread beendet wird rufe ich das Ereignis auf
If Assigned(FOnFinish) then FOnFinish(self); In der Hauptanwendung wird nach dem Creieren des Thread die Ereignis-Procedure zugewiesen und in dieser entsprechend reagiert.

MyThread := TMapThread.Create(True);
OnFinish := OnThreadFinish;


TMain.OnThreadFinish(Sender : TObject);
begin
dec(mein_globaler_Threadcounter);
end;
[delphi]
  Mit Zitat antworten Zitat