AGB  ·  Datenschutz  ·  Impressum  







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

Frage zu Thread und Ciritical Section

Ein Thema von McMorton · begonnen am 23. Apr 2006 · letzter Beitrag vom 27. Apr 2006
 
McMorton

Registriert seit: 8. Mär 2006
45 Beiträge
 
#1

Frage zu Thread und Ciritical Section

  Alt 23. Apr 2006, 20:00
Hallo.

Ich habe eine Frage zum Thema Threads.

Ich habe einen Thread, der über eine Critical Section auf ein Element zugreift.
Ein anderes Objekt will ab und zu ebenfalls auf dieses Element zugreifen (ebennfalls über Critical Section).

Nun habe ich beim ersten Test festgestellt, das das Objekt nie Zeit bekommt zuzugreifen. Der Thread läuft ständig, und belegt die ganze Zeit die Critical Section.
Wenn ich eine kurze Pause im Thread einfüge, dann geht es. Aber nun läuft das Programm irgentwie "unrund". Wenn ich die Form mit der Maus verschieben will, bewegt es sich sehr hagelig.
Liegt das an dem Sleep Befehl?
Wie kann ich das Problem sonst lösen?

Hier der Code:

Delphi-Quellcode:
//Der Thread
procedure einThread.execute;
begin
  while not Terminated do
    begin
      try
        //Pause, ansonsten würde eine andere Critical Section keine Zeit bekommen
        sleep(20);
        FCritSect.Enter;
          //Zugriff auf ein Objekt (Lesefunktion von Indy10)
        FCritSect.Leave;
      except
      end;
    end;
end;


//Das andere Objekt
procedure Datensenden;
begin
  try
    self.FCritSect.Enter;
      //Zugriff auf ein Objekt (Schreifunktion von Indy10)
    self.FCritSect.Leave;
  except
  end;
end;
  Mit Zitat antworten Zitat
 


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 14:58 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