Udostępnij za pośrednictwem


ThreadingTools.ApplyChangeOptimistically Metoda

Definicja

Przeciążenia

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

Optymistycznie wykonuje pewne przekształcenia wartości na podstawie pewnego pola i próbuje zastosować je z powrotem do pola, ponawiając próbę tyle razy, ile to konieczne, dopóki żaden inny wątek nie manipuluje tym samym polem.

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

Optymistycznie wykonuje pewne przekształcenia wartości na podstawie pewnego pola i próbuje zastosować je z powrotem do pola, ponawiając próbę tyle razy, ile to konieczne, dopóki żaden inny wątek nie manipuluje tym samym polem.

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

Optymistycznie wykonuje pewne przekształcenia wartości na podstawie pewnego pola i próbuje zastosować je z powrotem do pola, ponawiając próbę tyle razy, ile to konieczne, dopóki żaden inny wątek nie manipuluje tym samym polem.

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

Parametry typu

T

Typ danych do zastosowania zmiany.

TArg

Typ argumentu przekazanego do klasy applyChange.

Parametry

hotLocation
T

Pole, które może być manipulowane przez wiele wątków.

applyChangeArgument
TArg

Argument do przekazania do metody applyChange.

applyChange
Func<T,TArg,T>

Funkcja, która odbiera zarówno niezmienioną wartość, jak i applyChangeArgument, a następnie zwraca zmienioną wartość.

Zwraca

true jeśli wartość lokalizacji zostanie zmieniona przez zastosowanie wyniku applyChange funkcji, false jeśli wartość lokalizacji pozostała taka sama, ponieważ ostatnie wywołanie applyChange zwróciło istniejącą wartość.

Uwagi

Użyj tego przeciążenia, gdy applyChange wymaga jednego elementu, co jest typowe podczas aktualizowania niezmiennych typów kolekcji. Przekazując element jako operand metody, obiekt wywołujący może być w stanie uniknąć przydzielania obiektu zamknięcia dla każdego wywołania.

Dotyczy

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

Optymistycznie wykonuje pewne przekształcenia wartości na podstawie pewnego pola i próbuje zastosować je z powrotem do pola, ponawiając próbę tyle razy, ile to konieczne, dopóki żaden inny wątek nie manipuluje tym samym polem.

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

Parametry typu

T

Typ danych.

Parametry

hotLocation
T

Pole, które może być manipulowane przez wiele wątków.

applyChange
Func<T,T>

Funkcja, która odbiera niezmienioną wartość i zwraca zmienioną wartość.

Zwraca

true jeśli wartość lokalizacji zostanie zmieniona przez zastosowanie wyniku applyChange funkcji, false jeśli wartość lokalizacji pozostała taka sama, ponieważ ostatnie wywołanie applyChange zwróciło istniejącą wartość.

Dotyczy