En una aplicación de subproceso único utilizo código como este:Hilo de seguridad manera de incrementar y devolver un número entero en Delphi
Interface
function GetNextUID : integer;
Implementation
function GetNextUID : integer;
const
cUID : integer = 0;
begin
inc(cUID);
result := cUID;
end;
Esto podría, por supuesto, ser implementado como un objeto singleton, etc. - I' Estoy simplemente dando el ejemplo más simple posible.
P: ¿Cómo puedo modificar esta función (o diseñar una clase) para obtener el mismo resultado de manera segura a partir de subprocesos concurrentes?
Gracias por las respuestas rápidas, a todos. De alguna manera me las había arreglado para convencerme de que el incremento entrelazado estaba incrementando el valor en su lugar sin devolverlo, no que tuviera ningún sentido de esa manera, pero de todos modos me quedé atrapado. Gracias de nuevo. –