Condividi tramite


ThreadingTools.ApplyChangeOptimistically Metodo

Definizione

Overload

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

Esegue ottimisticamente una trasformazione del valore basata su un determinato campo e tenta di applicarlo nuovamente al campo, riprovando tutte le volte necessarie, fino a che nessun altro thread manipola lo stesso campo.

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

Esegue ottimisticamente una trasformazione del valore basata su un determinato campo e tenta di applicarlo nuovamente al campo, riprovando tutte le volte necessarie, fino a che nessun altro thread manipola lo stesso campo.

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

Esegue ottimisticamente una trasformazione del valore basata su un determinato campo e tenta di applicarlo nuovamente al campo, riprovando tutte le volte necessarie, fino a che nessun altro thread manipola 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 a applyChange.

Parametri

hotLocation
T

Il campo che può essere manipolato da più thread.

applyChangeArgument
TArg

Argomento da passare a applyChange.

applyChange
Func<T,TArg,T>

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

Restituisce

true se il valore di location viene modificato applicando il risultato della funzione applyChange. false se il valore di location rimane lo stesso perché l'ultima chiamata di applyChange ha restituito il valore esistente.

Commenti

Usare questo overload quando applyChange è necessario 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 ottimisticamente una trasformazione del valore basata su un determinato campo e tenta di applicarlo nuovamente al campo, riprovando tutte le volte necessarie, fino a che nessun altro thread manipola 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

Il campo che può essere manipolato da più thread.

applyChange
Func<T,T>

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

Restituisce

true se il valore di location viene modificato applicando il risultato della funzione applyChange. false se il valore di location rimane lo stesso perché l'ultima chiamata di applyChange ha restituito il valore esistente.

Si applica a