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
, затем возвращает измененное значение.
Возвращаемое значение
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>
Функция, которая получает неизменное значение и возвращает измененное значение.
Возвращаемое значение
true
, если значение расположения изменилось после применения результата функции applyChange
; false
, если значение расположения осталось неизменным, поскольку последний вызов applyChange
вернул существующее значение.