ConditionalWeakTable<TKey,TValue>.GetOrAdd 메서드

정의

오버로드

Name Description
GetOrAdd(TKey, Func<TKey,TValue>)

테이블에서 지정된 키를 검색하고 해당 값을 반환합니다. 테이블에 키가 없으면 메서드는 제공된 팩터리를 호출하여 지정된 키에 바인딩된 값을 만듭니다.

GetOrAdd(TKey, TValue)

테이블에서 지정된 키를 검색하고 해당 값을 반환합니다. 테이블에 키가 없으면 메서드는 지정된 값을 추가하고 지정된 키에 바인딩합니다.

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

테이블에서 지정된 키를 검색하고 해당 값을 반환합니다. 테이블에 키가 없으면 메서드는 제공된 팩터리를 호출하여 지정된 키에 바인딩된 값을 만듭니다.

GetOrAdd(TKey, Func<TKey,TValue>)

Source:
ConditionalWeakTable.cs
Source:
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

메서드가 완료된 후 현재 ConditionalWeakTable<TKey,TValue> 인스턴스에 바인딩된 TKey 값입니다.

예외

key 또는 valueFactory .입니다 null.

설명

여러 스레드가 동일한 키를 초기화하려고 하면 테이블이 동일한 키를 사용하여 여러 번 호출 valueFactory 할 수 있습니다. 정확히 이러한 호출 중 하나가 성공하고 해당 호출의 반환 값은 테이블에 추가되고 모든 레이싱 GetOrAdd(TKey, Func<TKey,TValue>) 호출에서 반환되는 호출입니다. 이 규칙은 교착 상태를 방지하기 위해 테이블이 내부 테이블 잠금 외부에서 호출 valueFactory 되도록 허용합니다.

적용 대상

GetOrAdd(TKey, TValue)

Source:
ConditionalWeakTable.cs
Source:
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

메서드가 완료된 후 현재 ConditionalWeakTable<TKey,TValue> 인스턴스에 바인딩된 TKey 값입니다.

예외

keynull입니다.

적용 대상

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

Source:
ConditionalWeakTable.cs
Source:
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

메서드가 완료된 후 현재 ConditionalWeakTable<TKey,TValue> 인스턴스에 바인딩된 TKey 값입니다.

예외

key 또는 valueFactory .입니다 null.

설명

여러 스레드가 동일한 키를 초기화하려고 하면 테이블이 동일한 키를 사용하여 여러 번 호출 valueFactory 할 수 있습니다. 정확히 이러한 호출 중 하나가 성공하고 해당 호출의 반환 값은 테이블에 추가되고 모든 레이싱 GetOrAdd<TArg>(TKey, Func<TKey,TArg,TValue>, TArg) 호출에서 반환되는 호출입니다. 이 규칙은 교착 상태를 방지하기 위해 테이블이 내부 테이블 잠금 외부에서 호출 valueFactory 되도록 허용합니다.

적용 대상