Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [C#] Utilizzo del metodo TryRemove della Classe ConcurrentDictionary

    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!
    http://www.noctworld.it - Gaming Community Italiana

  2. #2
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    codice:
    public void RimuoviBan(uint Id)
    {
         double valoreAppenaRimosso;
         Bans.TryRemove(Id, out valoreAppenaRimosso);
    }

  3. #3
    In questo caso hai creato un double perchè nel ConcurrentDictionary la coppia chiave valore era appunto Id, double giusto?
    http://www.noctworld.it - Gaming Community Italiana

  4. #4
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    si

  5. #5
    ok ci sono! un altro dubbio! se ci fossero più metodi che in tempi diversi effettuano dei tryremove sulla stessa collection, devo utilizzare sempre lo stesso double valoreAppenaRimosso;
    oppure ogni metodo deve avere la sua variabile? (es. metodo1 double valoreAppenaRimosso; - metodo 2 double valoreAppenaRimosso2; e cosi via...)
    http://www.noctworld.it - Gaming Community Italiana

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.