ConditionalWeakTable<TKey,TValue>.GetOrAdd Метод

Определение

Перегрузки

Имя Описание
GetOrAdd(TKey, Func<TKey,TValue>)

Выполняет поиск указанного ключа в таблице и возвращает соответствующее значение. Если ключ не существует в таблице, метод вызывает указанную фабрику для создания значения, привязанного к указанному ключу.

GetOrAdd(TKey, TValue)

Выполняет поиск указанного ключа в таблице и возвращает соответствующее значение. Если ключ не существует в таблице, метод добавляет заданное значение и привязывает его к указанному ключу.

GetOrAdd<TArg>(TKey, Func<TKey,TArg,TValue>, TArg)

Выполняет поиск указанного ключа в таблице и возвращает соответствующее значение. Если ключ не существует в таблице, метод вызывает указанную фабрику для создания значения, привязанного к указанному ключу.

GetOrAdd(TKey, Func<TKey,TValue>)

Исходный код:
ConditionalWeakTable.cs
Исходный код:
ConditionalWeakTable.cs

Выполняет поиск указанного ключа в таблице и возвращает соответствующее значение. Если ключ не существует в таблице, метод вызывает указанную фабрику для создания значения, привязанного к указанному ключу.

public:
 TValue GetOrAdd(TKey key, Func<TKey, TValue> ^ valueFactory);
public TValue GetOrAdd(TKey key, Func<TKey,TValue> valueFactory);
member this.GetOrAdd : 'Key * Func<'Key, 'Value (requires 'Key : null and 'Value : null)> -> 'Value
Public Function GetOrAdd (key As TKey, valueFactory As Func(Of TKey, TValue)) As TValue

Параметры

key
TKey

Ключ значения для поиска. Его нельзя null.

valueFactory
Func<TKey,TValue>

Обратный вызов, создающий значение ключа, если он еще не существует. Его нельзя null.

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

TValue

Значение, привязанное к TKey текущему ConditionalWeakTable<TKey,TValue> экземпляру, после завершения метода.

Исключения

key или valueFactory есть null.

Комментарии

Если несколько потоков пытаются инициализировать один и тот же ключ, таблица может вызываться valueFactory несколько раз с одним и тем же ключом. Именно один из этих вызовов будет успешным, и возвращаемое значение этого вызова будет одним, добавленным в таблицу и возвращенным всеми гоночными GetOrAdd(TKey, Func<TKey,TValue>) звонками. Это правило позволяет таблице вызывать valueFactory за пределами внутренней блокировки таблицы, чтобы предотвратить взаимоблокировку.

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

GetOrAdd(TKey, TValue)

Исходный код:
ConditionalWeakTable.cs
Исходный код:
ConditionalWeakTable.cs

Выполняет поиск указанного ключа в таблице и возвращает соответствующее значение. Если ключ не существует в таблице, метод добавляет заданное значение и привязывает его к указанному ключу.

public:
 TValue GetOrAdd(TKey key, TValue value);
public TValue GetOrAdd(TKey key, TValue value);
member this.GetOrAdd : 'Key * 'Value -> 'Value
Public Function GetOrAdd (key As TKey, value As TValue) As TValue

Параметры

key
TKey

Ключ значения для поиска. Его нельзя null.

value
TValue

Значение для добавления и привязки TKey, если оно еще не существует.

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

TValue

Значение, привязанное к TKey текущему ConditionalWeakTable<TKey,TValue> экземпляру, после завершения метода.

Исключения

key равно null.

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

GetOrAdd<TArg>(TKey, Func<TKey,TArg,TValue>, TArg)

Исходный код:
ConditionalWeakTable.cs
Исходный код:
ConditionalWeakTable.cs

Выполняет поиск указанного ключа в таблице и возвращает соответствующее значение. Если ключ не существует в таблице, метод вызывает указанную фабрику для создания значения, привязанного к указанному ключу.

public:
generic <typename TArg>
 TValue GetOrAdd(TKey key, Func<TKey, TArg, TValue> ^ valueFactory, TArg factoryArgument);
public TValue GetOrAdd<TArg>(TKey key, Func<TKey,TArg,TValue> valueFactory, TArg factoryArgument) where TArg : allows ref struct;
member this.GetOrAdd : 'Key * Func<'Key, 'Arg, 'Value (requires 'Key : null and 'Value : null)> * 'Arg -> 'Value
Public Function GetOrAdd(Of TArg) (key As TKey, valueFactory As Func(Of TKey, TArg, TValue), factoryArgument As TArg) As TValue

Параметры типа

TArg

Тип дополнительного аргумента, используемого с фабрикой значений.

Параметры

key
TKey

Ключ значения для поиска. Его нельзя null.

valueFactory
Func<TKey,TArg,TValue>

Обратный вызов, создающий значение ключа, если он еще не существует. Его нельзя null.

factoryArgument
TArg

Дополнительный аргумент для предоставления valueFactory при вызове.

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

TValue

Значение, привязанное к TKey текущему ConditionalWeakTable<TKey,TValue> экземпляру, после завершения метода.

Исключения

key или valueFactory есть null.

Комментарии

Если несколько потоков пытаются инициализировать один и тот же ключ, таблица может вызываться valueFactory несколько раз с одним и тем же ключом. Именно один из этих вызовов будет успешным, и возвращаемое значение этого вызова будет одним, добавленным в таблицу и возвращенным всеми гоночными GetOrAdd<TArg>(TKey, Func<TKey,TArg,TValue>, TArg) звонками. Это правило позволяет таблице вызывать valueFactory за пределами внутренней блокировки таблицы, чтобы предотвратить взаимоблокировку.

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