AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Kein wirklicher Geschwindigkeitsvorteil durch Threads?

Kein wirklicher Geschwindigkeitsvorteil durch Threads?

Ein Thema von Ginko · begonnen am 9. Mai 2013 · letzter Beitrag vom 12. Mai 2013
Antwort Antwort
Ginko

Registriert seit: 30. Aug 2008
208 Beiträge
 
FreePascal / Lazarus
 
#1

AW: Kein wirklicher Geschwindigkeitsvorteil durch Threads?

  Alt 9. Mai 2013, 21:40
Wenn ich das anhalten aus der Schleife hole wirds auch nicht schneller.
Delphi-Quellcode:
procedure TForm1.Button7Click(Sender: TObject);
var
  DateienLst: TSearchRec;
  id: Cardinal;
  ExitCode : Cardinal;
  tp : TThreadParams;
  threadhandle: THandle;
begin
  if FindFirst(Directory + '*.txt', faAnyFile and not faDirectory, DateienLst) = 0 then
    try

      repeat
        tp.Dat:= Directory+DateienLst.Name;
        threadhandle:= system.BeginThread(nil,0,@Umwandler,@tp,0,id);
      until FindNext(DateienLst) <> 0;


      WaitForSingleObject(threadhandle, INFINITE);
      GetExitCodeThread(threadhandle, ExitCode);
      case ExitCode of
        IDYES: Writeln('Benutzer hat "Ja" angeklickt.');
        IDNO: Writeln('Benutzer hat "Nein" angeklickt.');
      end;
      CloseHandle(threadhandle);
    finally
      SysUtils.FindClose(DateienLst);
    end;
end;

Geändert von Ginko ( 9. Mai 2013 um 21:47 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Kein wirklicher Geschwindigkeitsvorteil durch Threads?

  Alt 9. Mai 2013, 21:48
Und das funktioniert mit einer Threadhandle ?

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

AW: Kein wirklicher Geschwindigkeitsvorteil durch Threads?

  Alt 9. Mai 2013, 21:51
Es dürfte auch nur das Threadhandle vom letzten Thread geschlossen werden.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Ginko

Registriert seit: 30. Aug 2008
208 Beiträge
 
FreePascal / Lazarus
 
#4

AW: Kein wirklicher Geschwindigkeitsvorteil durch Threads?

  Alt 9. Mai 2013, 21:52
Also wäre hier ein Array von Threadhandles sinnvoll ?
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.688 Beiträge
 
Delphi 12 Athens
 
#5

AW: Kein wirklicher Geschwindigkeitsvorteil durch Threads?

  Alt 9. Mai 2013, 22:03
Darf ich dir einen Rat geben? Lass lieber die Finger von Threads bis du weißt, was du tust.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
grl

Registriert seit: 5. Feb 2007
174 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Kein wirklicher Geschwindigkeitsvorteil durch Threads?

  Alt 9. Mai 2013, 22:07
Darf ich dir einen Rat geben? Lass lieber die Finger von Threads bis du weißt, was du tust.
Der Gedanke kam mir hier auch: Beschäftige dich mal mit Threads, was sie tun, wie sie funktionieren, und dann geh das ganze nochmal von vorn an.

Eine bestehende Struktur auf Threads umzubauen ist meist ein extrem schwieriges Unterfangen - Threads zu verwenden muss nämlich schon im grundlegenden Design der Software berücksichtigt werden.

Luggi
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.201 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: Kein wirklicher Geschwindigkeitsvorteil durch Threads?

  Alt 9. Mai 2013, 22:09
Ich verstehe auch nicht ganz, was du zu erreichen suchst oder dir erhoffst. Ist das "umwandeln" wirklich so aufwändig? Wenn ja, und das mehr oder minder gleichzeitig geschehen soll, würde ich dem Thread doch einmal mit auf den Weg geben, wie der Dateiname lauten soll und ihn dann das komplette Umwandeln, Anlegen der Datei, Reinschreiben und schließen übernehmen lassen.

Und: Wozu die WinAPI-Funktionen? Ich finde die Delphi-Klasse TThread viel sympathischer
  Mit Zitat antworten Zitat
Ginko

Registriert seit: 30. Aug 2008
208 Beiträge
 
FreePascal / Lazarus
 
#8

AW: Kein wirklicher Geschwindigkeitsvorteil durch Threads?

  Alt 9. Mai 2013, 22:15
Ok, werde ich machen, kennt ihr ein paar gute Links zu dem Thema ?
Einen hab ich grad gefunden http://www.michael-puff.de/Programmi...mit_Delphi.pdf, ich seh grad der ist so umfangreich, der langt sicher erstmal...

@Der schöne Günther, das habe ich ja alles gemacht in der Funktion Umwandler
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.201 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

AW: Kein wirklicher Geschwindigkeitsvorteil durch Threads?

  Alt 9. Mai 2013, 22:25
Ja, genau dieses Tutorial ist auch das einzige, was ich wirklich gelesen habe

Trotzdem bin ich kurz danach auf TThread-Objekte umgestiegen. Einfach nur eine .Execute-Methode schreiben, eventuell noch eine onTerminate um im Hauptthread-Kontext das irgendwie anzuzeigen, dass man fertig ist und die Sache hat sich.

Ich weiß nicht, was genau in deiner Threadfunktion vor sich geht, aber da Datei-Operationen auf Prozessbasis stattfinden könnte ich mir irgendwie vorstellen, dass der zweite Thread bsp. solange blockiert, bis der erste seine Datei zuende geschrieben hat. Welche Funktionen für die Dateioperationen benutzt du und in welcher Reihenfolge?
  Mit Zitat antworten Zitat
Antwort Antwort

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 15:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz