AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Thread regiert nicht

Ein Thema von b01 · begonnen am 25. Aug 2006 · letzter Beitrag vom 10. Sep 2006
 
b01

Registriert seit: 3. Jul 2006
26 Beiträge
 
#1

Thread regiert nicht

  Alt 25. Aug 2006, 20:16
Hallo
ich bin grade dabei ein Program zu schreiben das während seiner Ausführung unter anderem auch einige FTP Transfers durchführt. Hierfür benutze ich die Indy ftpclient Komponente. Damit mein Program während des Transfers noch etwas anderes machen kann hab ich den "ftp-code" in einen extra Thread ausgelagert. Die execute methode des ftp threads sieht so aus:
Delphi-Quellcode:
begin
  while not Self.Terminated do
  begin
    case nextaction of
      1:connect;
      2:disconnect;
      3:get;
      4:exit;
    end;
  end;
end;
Die procedures connect, disconnect, get und exit machen jeweils das was in ihrem Namen steht, setzen das event fertig und legen den Thread mit suspend schlafen.
Im Hauptthread wird dann folgendermassen mit dem ftp Thread gearbeitet
Delphi-Quellcode:
   ...
  ftp:=Tftthread.Create(true);
  ftp.nextaction:=1; // Aktion 1
  ftp.Resume;
  // do something
  while not ((fertig.WaitFor(150))= wrSignaled)do
  begin
    Application.ProcessMessages;
  end;
  fertig.resetevent;
  ...
  ftp.nextaction:=3; // Aktion 2
  ftp.Resume;
  // do something
  while not ((fertig.WaitFor(150))= wrSignaled)do
  begin
    Application.ProcessMessages;
  end;
  fertig.resetevent;
  ...
Das Problem ist nun das wenn Aktion 2 unmittelbar auf Aktion 1 folgt der Hauptthread endlos in der while Schleife wartet. Auch ein Brakepoint in der get procedure des ftp Threads wird nie angespungen. Setze ich aber in der connect procedure einen Brakepoint und lasse das Programm sofort weiterlaufen funktioniert alles. Die Anzeichen deuten auf ein timing Problem, nur kann ich leider keins erkennen.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz