ImmutableInterlocked.Update 方法

定義

多載

Update<T,TArg>(ImmutableArray<T>, Func<ImmutableArray<T>,TArg,ImmutableArray<T>>, TArg)

透過指定的轉換函式,使用開放式鎖定交易語意,就地變動不可變的陣列。 為贏得開放式鎖定競爭,轉換沒有重試次數限制。

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

透過指定的轉換函式,以開放式鎖定交易語意就地變動值。 為贏得開放式鎖定競爭,轉換沒有重試次數限制。

Update<T>(ImmutableArray<T>, Func<ImmutableArray<T>,ImmutableArray<T>>)

透過指定的轉換函式,使用開放式鎖定交易語意,就地變動不可變的陣列。 為贏得開放式鎖定競爭,轉換沒有重試次數限制。

Update<T>(T, Func<T,T>)

透過指定的轉換函式,以開放式鎖定交易語意就地變動值。 為贏得開放式鎖定競爭,轉換沒有重試次數限制。

Update<T,TArg>(ImmutableArray<T>, Func<ImmutableArray<T>,TArg,ImmutableArray<T>>, TArg)

來源:
ImmutableInterlocked.cs
來源:
ImmutableInterlocked.cs
來源:
ImmutableInterlocked.cs

透過指定的轉換函式,使用開放式鎖定交易語意,就地變動不可變的陣列。 為贏得開放式鎖定競爭,轉換沒有重試次數限制。

public:
generic <typename T, typename TArg>
 static bool Update(System::Collections::Immutable::ImmutableArray<T> % location, Func<System::Collections::Immutable::ImmutableArray<T>, TArg, System::Collections::Immutable::ImmutableArray<T>> ^ transformer, TArg transformerArgument);
public static bool Update<T,TArg> (ref System.Collections.Immutable.ImmutableArray<T> location, Func<System.Collections.Immutable.ImmutableArray<T>,TArg,System.Collections.Immutable.ImmutableArray<T>> transformer, TArg transformerArgument);
static member Update : ImmutableArray * Func<System.Collections.Immutable.ImmutableArray<'T>, 'Arg, System.Collections.Immutable.ImmutableArray<'T>> * 'Arg -> bool
Public Shared Function Update(Of T, TArg) (ByRef location As ImmutableArray(Of T), transformer As Func(Of ImmutableArray(Of T), TArg, ImmutableArray(Of T)), transformerArgument As TArg) As Boolean

類型參數

T

不可變數組中的數據型別。

TArg

傳遞至 transformer的自變數類型。

參數

location
ImmutableArray<T>

要變更的不可變數組。

transformer
Func<ImmutableArray<T>,TArg,ImmutableArray<T>>

從舊數位產生新陣列的函式。 此函式應該沒有副作用,因為它可能會在與其他線程發生競爭時多次執行。

transformerArgument
TArg

要傳遞至 transformer 的引數。

傳回

若套用 transformer 函式的結果之後,位置的值變更時為 true;若因為上次叫用 transformer 傳回現有的值,所以位置的值保持不變時則為 false

適用於

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

來源:
ImmutableInterlocked.cs
來源:
ImmutableInterlocked.cs
來源:
ImmutableInterlocked.cs

透過指定的轉換函式,以開放式鎖定交易語意就地變動值。 為贏得開放式鎖定競爭,轉換沒有重試次數限制。

public:
generic <typename T, typename TArg>
 where T : class static bool Update(T % location, Func<T, TArg, T> ^ transformer, TArg transformerArgument);
public static bool Update<T,TArg> (ref T location, Func<T,TArg,T> transformer, TArg transformerArgument) where T : class;
static member Update : 'T * Func<'T, 'Arg, 'T (requires 'T : null and 'T : null)> * 'Arg -> bool (requires 'T : null)
Public Shared Function Update(Of T As Class, TArg As Class) (ByRef location As T, transformer As Func(Of T, TArg, T), transformerArgument As TArg) As Boolean

類型參數

T

資料的類型。

TArg

傳遞至 transformer的自變數類型。

參數

location
T

待變更的變數或欄位,可能會有多個執行緒存取。

transformer
Func<T,TArg,T>

會改變此值的函式。 此函式應該沒有副作用,因為它可能會在與其他線程發生競爭時多次執行。

transformerArgument
TArg

要傳遞至 transformer 的引數。

傳回

若套用 transformer 函式的結果之後,位置的值變更時為 true;若因為上次叫用 transformer 傳回現有的值,所以位置的值保持不變時則為 false

適用於

Update<T>(ImmutableArray<T>, Func<ImmutableArray<T>,ImmutableArray<T>>)

來源:
ImmutableInterlocked.cs
來源:
ImmutableInterlocked.cs
來源:
ImmutableInterlocked.cs

透過指定的轉換函式,使用開放式鎖定交易語意,就地變動不可變的陣列。 為贏得開放式鎖定競爭,轉換沒有重試次數限制。

public:
generic <typename T>
 static bool Update(System::Collections::Immutable::ImmutableArray<T> % location, Func<System::Collections::Immutable::ImmutableArray<T>, System::Collections::Immutable::ImmutableArray<T>> ^ transformer);
public static bool Update<T> (ref System.Collections.Immutable.ImmutableArray<T> location, Func<System.Collections.Immutable.ImmutableArray<T>,System.Collections.Immutable.ImmutableArray<T>> transformer);
static member Update : ImmutableArray * Func<System.Collections.Immutable.ImmutableArray<'T>, System.Collections.Immutable.ImmutableArray<'T>> -> bool
Public Shared Function Update(Of T) (ByRef location As ImmutableArray(Of T), transformer As Func(Of ImmutableArray(Of T), ImmutableArray(Of T))) As Boolean

類型參數

T

不可變數組中的數據型別。

參數

location
ImmutableArray<T>

要變更的不可變數組。

transformer
Func<ImmutableArray<T>,ImmutableArray<T>>

從舊數位產生新陣列的函式。 此函式應該沒有副作用,因為它可能會在與其他線程發生競爭時多次執行。

傳回

若套用 transformer 函式的結果之後,位置的值變更時為 true;若因為上次叫用 transformer 傳回現有的值,所以位置的值保持不變時則為 false

適用於

Update<T>(T, Func<T,T>)

來源:
ImmutableInterlocked.cs
來源:
ImmutableInterlocked.cs
來源:
ImmutableInterlocked.cs

透過指定的轉換函式,以開放式鎖定交易語意就地變動值。 為贏得開放式鎖定競爭,轉換沒有重試次數限制。

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

類型參數

T

資料的類型。

參數

location
T

待變更的變數或欄位,可能會有多個執行緒存取。

transformer
Func<T,T>

會改變此值的函式。 此函式應該沒有副作用,因為它可能會在與其他線程發生競爭時多次執行。

傳回

若套用 transformer 函式的結果之後,位置的值變更時為 true;若因為上次叫用 transformer 傳回現有的值,所以位置的值保持不變時則為 false

適用於