AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Thread Synchron Problem

Ein Thema von 4dk2 · begonnen am 10. Jun 2008
Antwort Antwort
4dk2

Registriert seit: 4. Sep 2007
176 Beiträge
 
#1

Thread Synchron Problem

  Alt 10. Jun 2008, 14:00
Hallo,
habe folgendes Problem.
habe einen Thread, der solange das Programm läuft
immer wieder die gleiche abfrage macht.

Problem ist das die Abfrage syncronisiert sein muss mit der MainForm.
Delphi-Quellcode:
unit Thread1;

interface

uses
  Classes,SysUtils;
  
type
  TThread1 = class(TThread)
  private
    { Private-Deklarationen }
  protected
    procedure Sync;
    procedure Execute; override;
  end;


implementation
uses uFmain;

procedure TThread1.Sync;
begin
    if fmain.FTimerLocked then exit;

    fmain.FTimerRunning:=true;
    try
   //irgendwas...
        // MARKER 1
    except on Exception do

    end;

    FTimerRunning:=false;
  end;

end;


procedure TThread1.Execute;
begin
  Fstartetd:=false;
  while not terminated do
  begin
      Synchronize(sync);
      sleep(1000);
  end;
  { Thread-Code hier einfügen }
end;

end.
so, Problem ist wenn ich jetzt aus der hauptform den thread gesteuert
anhalten will:

Delphi-Quellcode:
   FTimerLocked:=true;
   while FTimerRunning and not Fclosed do
   begin
      Application.HandleMessage;
      //oder
      Application.Progressmessages();
      sleep(2);
    end;
   // jetzt was machen ...
   ............
   // dann thread weiter laufen lassen..
   FTimerLocked:=false;

Das Problem ist, ist das eine Endlosschleife entsteht, wenn der thread noch
im Bearbeitungsteil also also bei "MARKER 1" ist.
Der Thread wird nämlich wohl von Delphi/Anwendung Suspended. Setzte ich die VAR FTimerRunning manuell im debugger
auf false und lasse die schleife zuendelaufen, läuft danach der thread im bearbeitungsteil weiter.

Ich weiss das man das Problem bei Wait4SingleObj... usw nicht hat. Aber der Thread soll ja
im prinzip unendlich laufen...

danke im vorraus

Karsten
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz