Dans une application mono-thread j'utiliser le code comme ceci:façon fil de sécurité pour incrémenter et retourner un entier Delphi
Interface
function GetNextUID : integer;
Implementation
function GetNextUID : integer;
const
cUID : integer = 0;
begin
inc(cUID);
result := cUID;
end;
Cela pourrait bien entendu être mis en œuvre comme un objet singleton, etc. - je Je donne juste l'exemple le plus simple possible.
Q: Comment puis-je modifier cette fonction (ou concevoir une classe) pour obtenir le même résultat en toute sécurité à partir de threads concurrents?
Merci pour les réponses rapides, tout le monde. J'avais en quelque sorte réussi à me convaincre que l'incrustation incrustée augmentait la valeur en place sans la retourner - pas que ça aurait un sens, mais je me suis quand même coincé là-dessus. Merci encore. –