Delphi的InterLockedIncrement函数为何不支持第二个参数来指定初始值?
- 内容介绍
- 文章标签
- 相关推荐
本文共计220个文字,预计阅读时间需要1分钟。
我想使用`InterLockedIncrement(counter, step)`,但编译器提示参数过多。是否有用于获取第二个参数的API?您正在寻找的Windows函数名为`InterlockedAdd`。我不太相信Delphi的RTL提供了此功能,可能是因为它实现的方式。
我想要做InterLockedIncrement(counter, step)
但编译说
参数太多了
是否有用于获取第二个参数的API?
您正在寻找的Windows函数名为InterlockedAdd.但我不相信Delphi的RTL提供此功能,可能是因为它实际上是作为MS工具链内在的编译器实现的.
还有TInterlocked.Add可以满足您的需求.
但我认为最好的选择是内在功能AtomicIncrement.这样称呼它:
AtomicIncrement(SomeVar, SomeAddend);
内在的优点是:
>它是跨平台的.>它内联,因此避免了函数调用的成本.
本文共计220个文字,预计阅读时间需要1分钟。
我想使用`InterLockedIncrement(counter, step)`,但编译器提示参数过多。是否有用于获取第二个参数的API?您正在寻找的Windows函数名为`InterlockedAdd`。我不太相信Delphi的RTL提供了此功能,可能是因为它实现的方式。
我想要做InterLockedIncrement(counter, step)
但编译说
参数太多了
是否有用于获取第二个参数的API?
您正在寻找的Windows函数名为InterlockedAdd.但我不相信Delphi的RTL提供此功能,可能是因为它实际上是作为MS工具链内在的编译器实现的.
还有TInterlocked.Add可以满足您的需求.
但我认为最好的选择是内在功能AtomicIncrement.这样称呼它:
AtomicIncrement(SomeVar, SomeAddend);
内在的优点是:
>它是跨平台的.>它内联,因此避免了函数调用的成本.

