Thread-safe way to increment and return an integer in Delphi
问题 In a single-threaded application I use code like this: Interface function GetNextUID : integer; Implementation function GetNextUID : integer; const cUID : integer = 0; begin inc( cUID ); result := cUID; end; This could of course be implemented as a singleton object, etc. - I'm just giving the simplest possible example. Q: How can I modify this function (or design a class) to achieve the same result safely from concurrent threads? 回答1: You can use the Interlocked* functions: function