Das Array ist statisch (Sess : array[0..maxSession-1] of TSess
Eigentlich laufen die ganzen Aktionen im Thread ab. Wenn ich das Programm einmal starte, dann macht das alles der Thread. Und da passiert es auch schon, dass sich das Programm von alleine "verabschiedet". Als einziges, was noch läuft im Hauptprogramm ist ein Sekundentimer, der im Array Werte abfragt, also nur liest.
Könnte es vielleicht damit zusammenhängenn, dass ich außerhalb des Threads den Wert "SekFinihsed" setze und hier im Thread abfrage und zurücksetze?
Delphi-Quellcode:
procedure TMyThreads.Execute;
begin
repeat
//ein Timer setzt jede Sekunde diesen Merker, so dass die Abarbeitung der Threadfunktion nur einmal pro Sekunde läuft
//wenn der Thread in der Sekunde nicht fertig ist, dann ist es auch kein Problem
if SekFinished then begin
SekFinished:=False;
//hier läuft der Thread
end;
Inc(ThrTmr); //hier nur ein Timer, damit ich sehen kann, wie schnell was läuft, dieser wird im Timer abgefragt und dann in die Statusleiste geschrieben
if Terminated then
break;
Synchronize(UpdateCaption);
until Terminated;
end;