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.