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

適用於