Einzelnen Beitrag anzeigen

DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#1

Thread gegen sich selbst absichern

  Alt 12. Jun 2008, 10:25
Hallo,

ich habe folgendes Problem.
Ich nutze eine Thread (nur den Hauptthread also den GUI-Thread)

Jetzt habe ich eine Procedure: (ist natürlich nur ein Beispiel)


Delphi-Quellcode:
procedure SchreibeLese;
begin
  Schreibe
  Application.ProcessMessages;
  Lese;
end;

Diese Funktion wird nun in einem Timer alle 100 ms aufegerufen.

Jetzt passiert ein Asynchroner Zugriff auf die Procedure über ein ButtonClick.

Wie kann ich sicher gehen, dass die Procedure nie nochmals aufgerufen wird wenn sie gerade aufegerufen worden ist.

Jetzt ist es ja durch das Application.ProcessMessages möglich, dass genau in dem Zeitpunkt (zwischen Schreiben/Lesen)
die Funktion nochmals aufgerufen wird, richtig?

Natürlich könnte man eine Steuervariable verwenden, aber das ist für meinen Fall nicht so gut geeignet.

Gibt es eine Synchronisationsmöglichkeit im eigenen Thread,
CritcalSections sind ja Threadübergreifend...

Hoffe ich habe mich nicht zu unklar ausgedrückt

Gruß
DM

//EDIT: Delphi Code Tags vergessen
  Mit Zitat antworten Zitat