hallo =),
ich arbeite zur zeit noch immer an einem programm das mit hilfe
von threads mehrere abläufe gleichzeitig erledigt.
diese threads arbeiten zur zeit leider immer nur ein und die selbe
aufgabe ab, dies könnte ich natürlich beim erzeugen der threads verhinden,
allerdings wäre dann die anzahl der aufgaben auf die anzahl der threads begrenzt.
ich möchte daher ein globales array erzeugen und einen zeiger
der immer auf das nächste element im array verweist,
damit die threads dieses array bis zum ende abarbeiten
nun hab ich mir folgenden code zusammen gebastelt,
der zwar keinen fehler erzeugt aber den zeiger auf das array
nicht erhöht
ersteinmal die
unit für die threads:
Delphi-Quellcode:
unit Unit2;
interface
uses
Classes, SysUtils, IdComponent, IdTCPConnection, IdTCPClient;
type
TMyThreads =
class(TThread)
private
procedure UpDateCounter;
procedure LunchThread;
...
public
FCounter: Integer;
...
implementation
uses
Unit1;
procedure TMyThreads.Execute;
begin
FCounter:= FCounter+1;
Synchronize(UpdateCounter);
LunchThread;
end;
...
procedure TMyThreads.UpDateCounter;
begin
MainForm.ArrayPointer := FCounter;
end;
und nun die
unit 1
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Controls, Forms, StdCtrls, ComCtrls,
Unit2, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IniFiles;
type
TMainForm =
class(TForm)
...
public
{ Public-Deklarationen }
ArrayPointer: Integer;
procedure UpdateCounter(Counter: integer);
...
implementation
procedure TMainForm.UpdateCounter(Counter: integer);
begin
ArrayPointer := Counter;
end;
hat jemand vielleicht ein vorschlag wie man soetwas besser lösen kann
bzw findet den fehler?
mfg