IReliableDictionary<TKey,TValue>.GetOrAddAsync Method

Definition

Overloads

GetOrAddAsync(ITransaction, TKey, TValue, TimeSpan, CancellationToken)

Adds a key/value pair to the Reliable Dictionary if the key does not already exist.

GetOrAddAsync(ITransaction, TKey, Func<TKey,TValue>, TimeSpan, CancellationToken)

Adds a key/value pair to the Reliable Dictionary by using the specified function, if the key does not already exist.

GetOrAddAsync(ITransaction, TKey, Func<TKey,TValue>)

Adds a key/value pair to the Reliable Dictionary by using the specified function, if the key does not already exist.

GetOrAddAsync(ITransaction, TKey, TValue)

Adds a key/value pair to the Reliable Dictionary if the key does not already exist. If the key exists no updates will be made to the value.

GetOrAddAsync(ITransaction, TKey, TValue, TimeSpan, CancellationToken)

Adds a key/value pair to the Reliable Dictionary if the key does not already exist.

public System.Threading.Tasks.Task<TValue> GetOrAddAsync (Microsoft.ServiceFabric.Data.ITransaction tx, TKey key, TValue value, TimeSpan timeout, System.Threading.CancellationToken cancellationToken);
abstract member GetOrAddAsync : Microsoft.ServiceFabric.Data.ITransaction * 'Key * 'Value * TimeSpan * System.Threading.CancellationToken -> System.Threading.Tasks.Task<'Value>

Parameters

tx
ITransaction

Transaction to associate this operation with.

key
TKey

The key of the element to add.

value
TValue

The value to be added, if the key does not already exist.

timeout
TimeSpan

The amount of time to wait for the operation to complete before throwing a TimeoutException. Primarily used to prevent deadlocks. The default is 4 seconds.

cancellationToken
CancellationToken

The token to monitor for cancellation requests. The default is None.

Returns

Task<TValue>

A task that represents the asynchronous add operation. The task result is the value for the key. This will be either the existing value for the key if the key is already in the Reliable Dictionary, or the new value if the key was not in the Reliable Dictionary.

Exceptions

tx is null, or key is null or cannot be serialized.

timeout is negative.

The operation failed to complete within the given timeout.

The operation was canceled.

The exception that is thrown when the IReliableDictionary<TKey,TValue> is not in Primary.

The transaction has been internally faulted by the system. Retry the operation on a new transaction

Thrown when a method call is invalid for the object's current state. Example, transaction used is already terminated: committed or aborted by the user. If this exception is thrown, it is highly likely that there is a bug in the service code of the use of transactions.

Indicates that the Reliable Dictionary is closed or deleted.

Applies to

Product Introduced

GetOrAddAsync(ITransaction, TKey, Func<TKey,TValue>, TimeSpan, CancellationToken)

Adds a key/value pair to the Reliable Dictionary by using the specified function, if the key does not already exist.

public System.Threading.Tasks.Task<TValue> GetOrAddAsync (Microsoft.ServiceFabric.Data.ITransaction tx, TKey key, Func<TKey,TValue> valueFactory, TimeSpan timeout, System.Threading.CancellationToken cancellationToken);
abstract member GetOrAddAsync : Microsoft.ServiceFabric.Data.ITransaction * 'Key * Func<'Key, 'Value (requires 'Key :> IComparable<'Key> and 'Key :> IEquatable<'Key>)> * TimeSpan * System.Threading.CancellationToken -> System.Threading.Tasks.Task<'Value>

Parameters

tx
ITransaction

Transaction to associate this operation with.

key
TKey

The key of the element to add.

valueFactory
Func<TKey,TValue>

The function used to generate a value for the key.

timeout
TimeSpan

The amount of time to wait for the operation to complete before throwing a TimeoutException. Primarily used to prevent deadlocks. The default is 4 seconds.

cancellationToken
CancellationToken

The token to monitor for cancellation requests. The default is None.

Returns

Task<TValue>

A task that represents the asynchronous add operation. The task result is the value for the key. This will be either the existing value for the key if the key is already in the Reliable Dictionary, or the new value for the key as returned by valueFactory if the key was not in the Reliable Dictionary.

Exceptions

tx is null, or key is null or cannot be serialized, or valueFactory is null.

timeout is negative.

The operation failed to complete within the given timeout.

The operation was canceled.

The exception that is thrown when the IReliableDictionary<TKey,TValue> is not in Primary.

The transaction has been internally faulted by the system. Retry the operation on a new transaction

Thrown when a method call is invalid for the object's current state. Example, transaction used is already terminated: committed or aborted by the user. If this exception is thrown, it is highly likely that there is a bug in the service code of the use of transactions.

Indicates that the Reliable Dictionary is closed or deleted.

Applies to

Product Introduced

GetOrAddAsync(ITransaction, TKey, Func<TKey,TValue>)

Adds a key/value pair to the Reliable Dictionary by using the specified function, if the key does not already exist.

public System.Threading.Tasks.Task<TValue> GetOrAddAsync (Microsoft.ServiceFabric.Data.ITransaction tx, TKey key, Func<TKey,TValue> valueFactory);
abstract member GetOrAddAsync : Microsoft.ServiceFabric.Data.ITransaction * 'Key * Func<'Key, 'Value (requires 'Key :> IComparable<'Key> and 'Key :> IEquatable<'Key>)> -> System.Threading.Tasks.Task<'Value>
Public Function GetOrAddAsync (tx As ITransaction, key As TKey, valueFactory As Func(Of TKey, TValue)) As Task(Of TValue)

Parameters

tx
ITransaction

Transaction to associate this operation with.

key
TKey

The key of the element to add.

valueFactory
Func<TKey,TValue>

The function used to generate a value for the key.

Returns

Task<TValue>

A task that represents the asynchronous add operation. The task result is the value for the key. This will be either the existing value for the key if the key is already in the Reliable Dictionary, or the new value for the key as returned by valueFactory if the key was not in the Reliable Dictionary.

Exceptions

tx is null, or key is null or cannot be serialized, or valueFactory is null.

The operation failed to complete within the default timeout.

The exception that is thrown when the IReliableDictionary<TKey,TValue> is not in Primary.

The transaction has been internally faulted by the system. Retry the operation on a new transaction

Thrown when a method call is invalid for the object's current state. Example, transaction used is already terminated: committed or aborted by the user. If this exception is thrown, it is highly likely that there is a bug in the service code of the use of transactions.

Indicates that the Reliable Dictionary is closed or deleted.

Applies to

Product Introduced

GetOrAddAsync(ITransaction, TKey, TValue)

Adds a key/value pair to the Reliable Dictionary if the key does not already exist. If the key exists no updates will be made to the value.

public System.Threading.Tasks.Task<TValue> GetOrAddAsync (Microsoft.ServiceFabric.Data.ITransaction tx, TKey key, TValue value);
abstract member GetOrAddAsync : Microsoft.ServiceFabric.Data.ITransaction * 'Key * 'Value -> System.Threading.Tasks.Task<'Value>
Public Function GetOrAddAsync (tx As ITransaction, key As TKey, value As TValue) As Task(Of TValue)

Parameters

tx
ITransaction

Transaction to associate this operation with.

key
TKey

The key of the element to add.

value
TValue

The value to be added, if the key does not already exist.

Returns

Task<TValue>

A task that represents the asynchronous add operation. The task result is the value for the key. This will be either the existing value for the key if the key is already in the Reliable Dictionary, or the new value if the key was not in the Reliable Dictionary.

Exceptions

tx is null, or key is null or cannot be serialized.

The operation failed to complete within the default timeout.

The exception that is thrown when the IReliableDictionary<TKey,TValue> is not in Primary.

The transaction has been internally faulted by the system. Retry the operation on a new transaction

Thrown when a method call is invalid for the object's current state. Example, transaction used is already terminated: committed or aborted by the user. If this exception is thrown, it is highly likely that there is a bug in the service code of the use of transactions.

Indicates that the Reliable Dictionary is closed or deleted.

Applies to

Product Introduced