Einzelnen Beitrag anzeigen

zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.618 Beiträge
 
Delphi 12 Athens
 
#3

Re: Wie Datenaustausch zwischen Thread und Hauptprogramm

  Alt 18. Apr 2009, 13:25
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;
Matthias
  Mit Zitat antworten Zitat