我想要做 InterLockedIncrement(counter, step) 但编译说 参数太多了 是否有用于获取第二个参数的API? 您正在寻找的Windows函数名为 InterlockedAdd .但我不相信Delphi的RTL提供此功能,可能是因为它实
InterLockedIncrement(counter, step)
但编译说
参数太多了
是否有用于获取第二个参数的API?
您正在寻找的Windows函数名为InterlockedAdd
.但我不相信Delphi的RTL提供此功能,可能是因为它实际上是作为MS工具链内在的编译器实现的.
还有TInterlocked.Add
可以满足您的需求.
但我认为最好的选择是内在功能AtomicIncrement
.这样称呼它:
AtomicIncrement(SomeVar, SomeAddend);
内在的优点是:
>它是跨平台的.>它内联,因此避免了函数调用的成本.