ThreadingTools.ApplyChangeOptimistically 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
重载
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
。