In einer Single-Threaded-Anwendung zu erhöhen und kehre ich folgenden Code verwenden:Gewinde sichere Art und Weise eine ganze Zahl in Delphi
Interface
function GetNextUID : integer;
Implementation
function GetNextUID : integer;
const
cUID : integer = 0;
begin
inc(cUID);
result := cUID;
end;
Dies natürlich als Singleton-Objekt implementiert werden könnte, usw. - I Ich gebe nur das einfachste mögliche Beispiel.
F: Wie kann ich diese Funktion ändern (oder eine Klasse entwerfen), um das gleiche Ergebnis sicher von gleichzeitigen Threads zu erreichen?
Danke für die schnellen Antworten, alle. Ich hatte es irgendwie geschafft, mich selbst davon zu überzeugen, dass das verzahnte Inkrementieren den Wert an Ort und Stelle erhöhte, ohne es zurückzugeben - nicht, dass es so einen Sinn ergeben würde, aber ich blieb trotzdem dabei stecken. Danke noch einmal. –