Zitat von
Dax:
Genau das ist der Sinn der Critical Sections: man kommt erst dann rein, wenn alle anderen draussen sind - in der Zwischenzeit wartet man darauf, reinzukommen. Bei meinem Beispiel sind die Zeiten innerhalb der CS allerdings so kurz, dass man sich darum keine Gedanken machen muss
Aber theoretisch, wenn das jetzt mehr als kurz wäre.
Ich dachte an so was:
Code:
wenn <Critical>.KannBetreten dann
beginne
<Critical>.Betrete;
...
<Critical>.Verlasse;
beende
Zitat von
Dax:
Zitat von
xZise:
PS: Meine Hilfe funktioniert gerade nicht: Welche
Unit ist CriticalSection?
SyncObjs glaub ich heisst die...
Danke
Richtig
MfG
xZise
Edit #1
PS: Es gibt die Funktion "TryEnter". Scheiße! Warum funktioniert die Hilfe nicht. Tuts damit? Und reicht dann das?
Delphi-Quellcode:
procedure TSearchThread.SetFile(AFile: string);
begin
if FCritical.TryEnter then
begin
FFile := AFile;
FCritical.Leave;
end;
end;