Ciao ragazzi,
sto creando un applicativo console multithreading in C# e per evitare noiosi deadlock dovuti all'utilizzo di numerosi lock, sto tentando di "convertire" tutti i vecchi Dictionary in ConcurrentDictionary che sono collezioni thread-safe.
Ovviamente oltre a rinominare i Dictionary, sto provvedendo a rivedere tutti i metodi di Add e di Remove che nel ConcurrentDictionary diventano rispettivamente TryAdd e TryRemove. Per i TryAdd non ci sono problemi ma all'atto di utilizzare il TryRemove non riesco assolutamente a capire come utilizzarlo.
Immaginiamo di avere il seguente ConcurrentDictionary:
Codice:
codice:
private ConcurrentDictionary<uint, Double> Ban;
ora mi trovo a dover rimuovere, all'interno di un metodo, una coppia chiave/valore dalla precedente collection.
Ecco il metodo:
Codice:
codice:
public void RimuoviBan(uint Id)
{
Bans.TryRemove(Id, out ?????);
}
Dove ho messo i punti interrogativi evidenziati, è lì che non riesco a capire cosa devo inserire.
La MSDN cita:
key
Tipo: TKey
Chiave dell'elemento da rimuovere e restituire.
value
Tipo: TValue
Quando questo metodo termina, value contiene l'oggetto rimosso da ConcurrentDictionary<TKey, TValue> o il valore predefinito di , se l'operazione ha esito negativo.
Non riesco ancora a capire!
Chiedo aiuto!