【发布时间】:2011-04-30 08:04:55
【问题描述】:
在单线程应用程序中,我使用如下代码:
Interface
function GetNextUID : integer;
Implementation
function GetNextUID : integer;
const
cUID : integer = 0;
begin
inc( cUID );
result := cUID;
end;
这当然可以实现为单例对象等 - 我只是给出最简单的示例。
问:如何修改这个函数(或设计一个类)以从并发线程中安全地获得相同的结果?
【问题讨论】:
-
感谢大家的快速解答。我以某种方式设法说服自己 interlockedincrement 在不返回它的情况下增加了现有的值 - 并不是说那样有任何意义,但我仍然坚持这一点。再次感谢。
标签: multithreading delphi thread-safety increment