Lingua

ThreadingTools.ApplyChangeOptimistically Metodo

Definizione

Overload

Nome Descrizione
ApplyChangeOptimistically<T,TArg>(T, TArg, Func<T,TArg,T>)

Esegue in modo ottimistico una trasformazione del valore in base ad alcuni campi e tenta di applicarla nuovamente al campo, ritentando il numero di tentativi necessari fino a quando nessun altro thread non sta manipolando lo stesso campo.

ApplyChangeOptimistically<T>(T, Func<T,T>)

Esegue in modo ottimistico una trasformazione del valore in base ad alcuni campi e tenta di applicarla nuovamente al campo, ritentando il numero di tentativi necessari fino a quando nessun altro thread non sta manipolando lo stesso campo.

ApplyChangeOptimistically<T,TArg>(T, TArg, Func<T,TArg,T>)

Esegue in modo ottimistico una trasformazione del valore in base ad alcuni campi e tenta di applicarla nuovamente al campo, ritentando il numero di tentativi necessari fino a quando nessun altro thread non sta manipolando lo stesso campo.

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

Parametri di tipo

T

Tipo di dati a cui applicare la modifica.

TArg

Tipo di argomento passato all'oggetto applyChange.

Parametri

hotLocation
T

Campo che può essere modificato da più thread.

applyChangeArgument
TArg

Argomento da passare a applyChange.

applyChange
Func<T,TArg,T>

Funzione che riceve sia il valore non modificato che applyChangeArgument, quindi restituisce il valore modificato.

Valori restituiti

true se il valore della posizione viene modificato applicando il risultato della applyChange funzione; false se il valore della posizione è rimasto invariato perché l'ultima chiamata di applyChange ha restituito il valore esistente.

Commenti

Usare questo overload quando applyChange richiede un singolo elemento, come è comune quando si aggiornano tipi di raccolta non modificabili. Passando l'elemento come operando del metodo, il chiamante può evitare di allocare un oggetto di chiusura per ogni chiamata.

Si applica a

ApplyChangeOptimistically<T>(T, Func<T,T>)

Esegue in modo ottimistico una trasformazione del valore in base ad alcuni campi e tenta di applicarla nuovamente al campo, ritentando il numero di tentativi necessari fino a quando nessun altro thread non sta manipolando lo stesso campo.

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

Parametri di tipo

T

Tipo di dati.

Parametri

hotLocation
T

Campo che può essere modificato da più thread.

applyChange
Func<T,T>

Funzione che riceve il valore non modificato e restituisce il valore modificato.

Valori restituiti

true se il valore della posizione viene modificato applicando il risultato della applyChange funzione; false se il valore della posizione è rimasto invariato perché l'ultima chiamata di applyChange ha restituito il valore esistente.

Si applica a