ThreadingTools.ApplyChangeOptimistically Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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.