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 затем возвращающая измененное значение.

Возвращаемое значение

Boolean

значение true , если значение расположения изменяется путем применения результата applyChange функции; значение false , если значение расположения остается прежним, так как последний вызов applyChange вернул существующее значение.

Комментарии

Используйте эту перегрузку 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>

Функция, которая получает неизменное значение и возвращает измененное значение.

Возвращаемое значение

Boolean

значение true , если значение расположения изменяется путем применения результата applyChange функции; значение false , если значение расположения остается прежним, так как последний вызов applyChange вернул существующее значение.

Применяется к