AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Threads nacheinander ausführen

Ein Thema von TheMiller · begonnen am 1. Feb 2009 · letzter Beitrag vom 2. Feb 2009
Antwort Antwort
Seite 2 von 2     12
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#11

Re: Threads nacheinander ausführen

  Alt 2. Feb 2009, 08:23
Zitat:
wieso denn nicht eine Liste aller zu ladender Dateien EINEM Thread geben, welcher diese Liste dann selber nacheinander abarbeitet?
Das mache ich ja jetzt. Funktioniert auch prima. Wollte doch trotzdem aus Interesse nur wissen, wie man Threads nacheinander ausführt, zumal meiner nicht in das onTerminate reinspringt.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.097 Beiträge
 
Delphi 12 Athens
 
#12

Re: Threads nacheinander ausführen

  Alt 2. Feb 2009, 08:38
du bist auch sicher, daß dein .Execute komplett abgearbeitet wird?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#13

Re: Threads nacheinander ausführen

  Alt 2. Feb 2009, 08:39
Ja.
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#14

Re: Threads nacheinander ausführen

  Alt 2. Feb 2009, 09:06
Also,

habe noch rausgefunden, dass der Thread immer hängen bleibt, sobald irgendwo "Synchronize" aufgerufen wird. Das verstehe ich nicht.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.097 Beiträge
 
Delphi 12 Athens
 
#15

Re: Threads nacheinander ausführen

  Alt 2. Feb 2009, 09:07
Zitat von DJ-SPM:
Ja.
hmmm, ich verwende dieses TThread einfach nicht genug, aber wenn ich so in den Code seh, dann müßte es aufgerufen werden

PS: es gibt auch eine TThreadList (grad drüber gestolpert)

grad probiert ... bei mir geht's

Delphi-Quellcode:
type TMyThread = Class(TThread)
    protected
      procedure execute; override;
    end;

procedure TMyThread.execute;
  begin
    asm int 3 end;
    beep;
  end;

procedure TForm1.RunNextThread(Sender: TObject);
  begin
    asm int 3 end;
    beep;
  end;

procedure TForm1.FormCreate(Sender: TObject);
  begin
    asm int 3 end;
    with TMyThread.Create(true) do begin
      OnTerminate := RunNextThread;
      FreeOnTerminate := True;
      Resume;
    end;
  end;
natürlich in D7 getestet (hast Glück, daß ich das noch drauf hab ^^)



Zitat von DJ-SPM:
Also,

habe noch rausgefunden, dass der Thread immer hängen bleibt, sobald irgendwo "Synchronize" aufgerufen wird. Das verstehe ich nicht.
ok, das klärt es ... das OnTerminate wird auch per Synchronize im Hautthread ausgeführt.

Ist mit deinem Hauptthread alles in Ordnung?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#16

Re: Threads nacheinander ausführen

  Alt 2. Feb 2009, 09:13
Vielen Dank. Das schau' ich mir gleich genauer an

Nochmal kurz zum Synchronize-Problem: Wenn ich es einfach weglasse und die Prozedur so aufrufe, dann funktioniert alles prima.

Hm. Der Hauptthread läuft ohne Probleme. Ich habe folgenden Aufbau:

Das Hauptprogramm wird geladen und sucht nach PlugIns (DLL-Forms). Dann sucht es nach Updates. Werden Updates gefunden und der User möchte diese laden, wird das Plugin "Updates" (auch eine DLL-Form) geladen und darin werden die Updates aufgelistet und daraus auch der UpdateThread gestartet. Hauptanwendung und Update-DLL-Form haben die Unit "Updater" in der Uses-Klausel, in der der Thread und die Update-Prozeduren verfügbar sind.

Aber das Funktioniert alles ohne Probleme und ohne MemLeaks (laut FastMM), ausgenommen von einer CriticalSection, die aus der IdHTTP-Komponente kommt.
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#17

Re: Threads nacheinander ausführen

  Alt 2. Feb 2009, 17:36
Zitat von himitsu:
wieso denn nicht eine Liste aller zu ladender Dateien EINEM Thread geben, welcher diese Liste dann selber nacheinander abarbeitet?
Die Frage (Threadtitel lautet nicht, eine Liste von Dateien nacheinander zu laden, sondern wie man Threads nacheinander ausführt. Daher mein generischer Lösungsvorschlag.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 10:51 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