Einzelnen Beitrag anzeigen

Jackie1983

Registriert seit: 12. Mär 2007
486 Beiträge
 
#1

Methode wird Thread übergeben. Thread startet methode + var

  Alt 8. Okt 2008, 11:22
hi,

aus meiner Hauptanwendung erstelle und starte ich einen Thread. Der Thread startet wieder einen Thread.
Aus der Hauptanwendung übergebe ich Thread1 die Methode. Thread1 übergibt diese Methode Thread2. Thread2 speichert diese in eine Variable.

Beim Aufruf der Methode aus Thread2 kommt es zum Fehler, also muss ich die Methode synchronisieren. Da ich aber Variablen übergeben muss, wie kann ich das machen? Habe da was gefunden
Delphi-Quellcode:
//http://www.dev-center.de/index.php?cat=tutorials&file=multithreading
type
  TBinFertig = procedure(const Content: String) of object;

  TMyOwnThread = class(TThread)
  private
    FBinFertig: TBinFertig;
    procedure SyncBinFertig;
  public
    property BinFertig: TBinFertig read FBinFertig write FBinFertig;
  end;

implementation

procedure TMyOwnThread.SyncBinFertig;
begin
  if Assigned(FBinFertig)
    then FBinFertig(DasIstDerInhaltDerWebseite);
end;

procedure TMyOwnThread.Execute;
begin
  try
    // Download der Seite ...

    // Synchronisieren
    Synchronize(SyncBinFertig);
  except
    on e: exception do begin
      // mache hier irgendetwas mit dem Fehler.
    end;
  end;
end;
Nur brauche ich dann gobale Variablen im Thread und das möchte ich vermeiden. Hat jemand eine andere Idee?
  Mit Zitat antworten Zitat