Interlocked.Add 方法

定义

以原子操作的形式,添加两个整数并用两者的和替换第一个整数。

重载

Add(Int32, Int32)

对两个 32 位整数进行求和并用和替换第一个整数,上述操作作为一个原子操作完成。

Add(Int64, Int64)

对两个 64 位整数进行求和并用和替换第一个整数,上述操作作为一个原子操作完成。

Add(UInt32, UInt32)

对两个 32 位无符号整数进行求和并用和替换第一个整数,上述操作作为一个原子操作完成。

Add(UInt64, UInt64)

对两个 64 位无符号整数进行求和并用和替换第一个整数,上述操作作为一个原子操作完成。

Add(Int32, Int32)

Source:
Interlocked.CoreCLR.cs
Source:
Interlocked.CoreCLR.cs
Source:
Interlocked.CoreCLR.cs

对两个 32 位整数进行求和并用和替换第一个整数,上述操作作为一个原子操作完成。

public static int Add(ref int location1, int value);

参数

location1
Int32

一个变量,包含要添加的第一个值。 两个值的和存储在 location1 中。

value
Int32

要添加到整数中的 location1 位置的值。

返回

此操作存储在 location1 的新值。

例外

location1 的地址为空指针。

注解

此方法通过包装处理溢出条件:如果 处 location1Int32.MaxValuevalue 的 值为 1,则结果为 Int32.MinValue;如果 value 为 2,则结果为 (Int32.MinValue + 1) ;依此类比。 不会引发异常。

另请参阅

适用于

.NET 10 和其他版本
产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Add(Int64, Int64)

Source:
Interlocked.CoreCLR.cs
Source:
Interlocked.CoreCLR.cs
Source:
Interlocked.CoreCLR.cs

对两个 64 位整数进行求和并用和替换第一个整数,上述操作作为一个原子操作完成。

public static long Add(ref long location1, long value);

参数

location1
Int64

一个变量,包含要添加的第一个值。 两个值的和存储在 location1 中。

value
Int64

要添加到整数中的 location1 位置的值。

返回

此操作存储在 location1 的新值。

例外

location1 的地址为空指针。

注解

此方法通过包装处理溢出条件:如果 处 location1Int64.MaxValuevalue 的 值为 1,则结果为 Int64.MinValue;如果 value 为 2,则结果为 (Int64.MinValue + 1) ;依此类比。 不会引发异常。

另请参阅

适用于

.NET 10 和其他版本
产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Add(UInt32, UInt32)

Source:
Interlocked.cs
Source:
Interlocked.cs
Source:
Interlocked.cs

重要

此 API 不符合 CLS。

对两个 32 位无符号整数进行求和并用和替换第一个整数,上述操作作为一个原子操作完成。

[System.CLSCompliant(false)]
public static uint Add(ref uint location1, uint value);

参数

location1
UInt32

一个变量,包含要添加的第一个值。 两个值的和存储在 location1 中。

value
UInt32

要添加到整数中的 location1 位置的值。

返回

此操作存储在 location1 的新值。

属性

例外

location1 的地址是一个 null 指针。

适用于

.NET 10 和其他版本
产品 版本
.NET 5, 6, 7, 8, 9, 10

Add(UInt64, UInt64)

Source:
Interlocked.cs
Source:
Interlocked.cs
Source:
Interlocked.cs

重要

此 API 不符合 CLS。

对两个 64 位无符号整数进行求和并用和替换第一个整数,上述操作作为一个原子操作完成。

[System.CLSCompliant(false)]
public static ulong Add(ref ulong location1, ulong value);

参数

location1
UInt64

一个变量,包含要添加的第一个值。 两个值的和存储在 location1 中。

value
UInt64

要添加到整数中的 location1 位置的值。

返回

此操作存储在 location1 的新值。

属性

例外

location1 的地址是一个 null 指针。

适用于

.NET 10 和其他版本
产品 版本
.NET 5, 6, 7, 8, 9, 10