AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi MultiThreading Bei mir ca. 40x Langsamer bei IntegerBerechnu
Thema durchsuchen
Ansicht
Themen-Optionen

MultiThreading Bei mir ca. 40x Langsamer bei IntegerBerechnu

Ein Thema von Hallo_Thomas · begonnen am 18. Aug 2006 · letzter Beitrag vom 21. Aug 2006
Antwort Antwort
Seite 3 von 3     123   
Hallo_Thomas

Registriert seit: 18. Apr 2005
Ort: Dresden
405 Beiträge
 
Delphi 2005 Professional
 
#21

Re: MultiThreading Bei mir ca. 40x Langsamer bei IntegerBere

  Alt 21. Aug 2006, 21:13
Hallo, habe die letzten Tage ein bisschen daran an meinem Thread-Problem gearbeitet, um zu Erfahren ob das Verwalten von Threads aufwendiger ist als das ständige neu erstellen.

So wollte ich probeweise die Schleife in den Thread verlegen.

Leider schaffe ich auch den Spass nicht, ich wollte den Thread mit Suspend anhalten und mit Resume weilterlaufen lassen,doch leider klappt dies nicht!!!


Die Änderungenen:

So Starte ich die beiden Thread

Delphi-Quellcode:
     TThread1.Create(Feld);
     TThread2.Create(Feld);
So ist die deklaraion:
Delphi-Quellcode:
Thread1:TThread1;
Thread2:TThread2;

Delphi-Quellcode:
procedure TThread1.Counten2(Var Feld1:TIntegerDynArray);
Var x,y,z:Integer;
begin
    i:=0;

    for z:=0 to 150 do
    begin
      for y:=0 to 13 do
      for x:=0 to 156 do Feld1[x]:=Feld1[x]+1*2 div 2;
      x:=SumInt(Feld1);
      Inc(i);

      Thread2.Resume;
       Form1.Label2.Caption:=IntToStr(i);
      Thread1.suspend;
    end;
   Form1.Label2.Caption:=IntToStr(i);
end;
Delphi-Quellcode:
procedure TThread2.Counten2(Var Feld1:TIntegerDynArray);
Var x,y,z:Integer;
begin
    Thread2.suspend;
    for z:=0 to 150 do
    begin
      for y:=0 to 13 do
      for x:=0 to 156 do Feld1[x]:=Feld1[x]+1*2 div 2;
      x:=SumInt(Feld1);
      Thread1.Resume;
      Thread2.suspend;
    end;
end;
Bitte nicht über den Sinn oder Unsinn lappertieren dieser beiden Codes,ich möchte hiermit erst mal das anhalten und weitermachen zwischen 2 Threads üben.Leider wird das i im ersten Thread nicht höher als 1 gezählt!Und wenn ich es nach reume auslesen will passiert gar nix.
Angehängte Dateien
Dateityp: zip scoure2_185.zip (34,4 KB, 5x aufgerufen)
  Mit Zitat antworten Zitat
C.Schoch

Registriert seit: 2. Jan 2006
Ort: Wüstenrot
235 Beiträge
 
Turbo Delphi für Win32
 
#22

Re: MultiThreading Bei mir ca. 40x Langsamer bei IntegerBere

  Alt 21. Aug 2006, 21:47
Hi,
Und da gabs keine AV Thread2.Resume; IMHO muss das so aussehen

Delphi-Quellcode:
Thread1 := TThread1.Create(Feld);
Thread2 := TThread2.Create(Feld);
Und auf die Variablen Thread1 und Thread2 muss dann so zugegriffen werden:

TGeldStatistikThread.Thread2.Resume; @all Bitte korregieren, wenn ich Mist gebaut habe.
Tschau Christian
Das System hofft auf Besserung
[Siemens]
  Mit Zitat antworten Zitat
Hallo_Thomas

Registriert seit: 18. Apr 2005
Ort: Dresden
405 Beiträge
 
Delphi 2005 Professional
 
#23

Re: MultiThreading Bei mir ca. 40x Langsamer bei IntegerBere

  Alt 21. Aug 2006, 22:10
@C.Schoch

Da ich immer zwischen den Beiden Threas wechsle, habe ich es in die Threads eingesetzt, aber wie bekomme ich in ausserhalb des Threads mit, wenn er angehalten ist & gleichzeitig den Thread2 Starte?
  Mit Zitat antworten Zitat
C.Schoch

Registriert seit: 2. Jan 2006
Ort: Wüstenrot
235 Beiträge
 
Turbo Delphi für Win32
 
#24

Re: MultiThreading Bei mir ca. 40x Langsamer bei IntegerBere

  Alt 21. Aug 2006, 22:26
Das ist auch nicht das Problem, das Problem liegt IMO daran das dein Thread2.Resume in Thread1 und genauso dein Threa1.Resume in Thread2 "ungehört verpufft", da der Windows gar nicht weis wem es das Resume zurufen soll.

[edit]Du kannst auf Suspended prüfen[/edit]
[edit1]Ich glaube du solltest dir mal das Tutorial "Threads mit Delphi" von Luckie anschauen (mir hats was gebracht ) Tutorial
Tschau Christian
Das System hofft auf Besserung
[Siemens]
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 21:37 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