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 вернул существующее значение.