ThreadingTools.ApplyChangeOptimistically 方法

定义

重载

ApplyChangeOptimistically<T,TArg>(T, TArg, Func<T,TArg,T>)

开放式执行基于某个字段的某个值转换并尝试将其应用到字段中,根据需要重新尝试多次,直到没有其他线程处理同一个字段。

ApplyChangeOptimistically<T>(T, Func<T,T>)

开放式执行基于某个字段的某个值转换并尝试将其应用到字段中,根据需要重新尝试多次,直到没有其他线程处理同一个字段。

ApplyChangeOptimistically<T,TArg>(T, TArg, Func<T,TArg,T>)

开放式执行基于某个字段的某个值转换并尝试将其应用到字段中,根据需要重新尝试多次,直到没有其他线程处理同一个字段。

public:
generic <typename T, typename TArg>
 where T : class static bool ApplyChangeOptimistically(T % hotLocation, TArg applyChangeArgument, Func<T, TArg, T> ^ applyChange);
public static bool ApplyChangeOptimistically<T,TArg> (ref T hotLocation, TArg applyChangeArgument, Func<T,TArg,T> applyChange) where T : class;
static member ApplyChangeOptimistically : 'T * 'Arg * Func<'T, 'Arg, 'T (requires 'T : null and 'T : null)> -> bool (requires 'T : null)
Public Function ApplyChangeOptimistically(Of T As Class, TArg As Class) (ByRef hotLocation As T, applyChangeArgument As TArg, applyChange As Func(Of T, TArg, T)) As Boolean

类型参数

T

要向其应用更改的数据类型。

TArg

传递给 applyChange的参数的类型。

参数

hotLocation
T

可由多个线程操作的字段。

applyChangeArgument
TArg

要传递给 applyChange的参数。

applyChange
Func<T,TArg,T>

一个函数,它同时接收未更改的值和 applyChangeArgument,然后返回更改的值。

返回

如果位置值是通过应用 applyChange 函数的结果而更改,则为 true;如果位置值因上次调用 applyChange 返回的现有值而保持不变,则为 false

注解

如果需要单个项, applyChange 请使用此重载,这在更新不可变集合类型时很常见。 通过将项作为方法操作数传递,调用方可能能够避免为每个调用分配闭包对象。

适用于

ApplyChangeOptimistically<T>(T, Func<T,T>)

开放式执行基于某个字段的某个值转换并尝试将其应用到字段中,根据需要重新尝试多次,直到没有其他线程处理同一个字段。

public:
generic <typename T>
 where T : class static bool ApplyChangeOptimistically(T % hotLocation, Func<T, T> ^ applyChange);
public static bool ApplyChangeOptimistically<T> (ref T hotLocation, Func<T,T> applyChange) where T : class;
static member ApplyChangeOptimistically : 'T * Func<'T, 'T (requires 'T : null and 'T : null)> -> bool (requires 'T : null)
Public Function ApplyChangeOptimistically(Of T As Class) (ByRef hotLocation As T, applyChange As Func(Of T, T)) As Boolean

类型参数

T

数据类型。

参数

hotLocation
T

可由多个线程操作的字段。

applyChange
Func<T,T>

接收未更改的值并返回已更改的值的函数。

返回

如果位置值是通过应用 applyChange 函数的结果而更改,则为 true;如果位置值因上次调用 applyChange 返回的现有值而保持不变,则为 false

适用于