mein Problem besteht darin, ich kann in meiner Schleife i Threads erzeugen
Delphi-Quellcode:
for i:= 0 to Anzahl Threads do
aThread := TMyThread.Create( Übergabe der Ausgangsmatrizen, Überhabe der Ergbnismatrix);
aThread.Execute // Berechne hier eine Teilmatrix und dann das Ergebnis in die große Matrix schreiben
end;
Nein, dein Problem ist, daß du nicht lesen kannnt.
Dir wurde mehrmals gesagt, daß man Execute nicht aufruft. (wird auch in jedem Thread-Tutorial erklärt)
PS: Execute ist mit Absicht als Protected deklariert, damit sollte eigentlich klar werden, daß man dieses nicht von extern aufruft.
Wobei ich die Möglichkeiten der Generics und anonymen Methoden sehr zu schätzen lernte.
Delphi-Quellcode:
TThread.CreateAnonymousThread(
procedure
begin
...
// läuft in einem Thread
...
TThread.Synchronize(
nil,
procedure
begin
...
// läuft im Hautthread/VCL-Thread
...
end);
...
// läuft in einem Thread
...
TThread.Synchronize(
nil,
procedure
var
i: Integer;
begin
...
// läuft im Hautthread/VCL-Thread
for i := 0
to ...
...
end);
...
// läuft in einem Thread
...
end).Start;