Forum: Programmieren allgemein
by jaenicke,
15. Mär 2020
Es sei denn es kommt auf die Performance an. Und wenn du innerhalb einer Klasse bist, hast du ja eh schon ein Objekt...
TMonitor.Enter(Self);
try
Result := FBool;
finally
TMonitor.Exit(Self);
end;
Forum: Programmieren allgemein
by jaenicke,
15. Mär 2020
Wobei die Critical Sections relativ langsam sind. Bei kurzen Blockaden ist TMonitor die bessere Alternative, weil dort erst mit Spins versucht wird auf den Eintritt in die geschützte Ressource zu warten.
Beispiel:
TMonitor.Enter(FList);
try
FList.Add(NewData);
finally
TMonitor.Exit(FList);
end;