ciao ragazzi,
ho bisogno di una mano...
ho un form chiamato form3 in cui ho delle listview. Un altra classe AscoltoAggiunte riceve le modifiche da fare alle listview e deve effettuare gli aggiornamenti delle listview stesse che sono nel form3.
Essendo in due classi diverse devo utilizzare i delegati per modificare le liste del form3 dall'AscoltoAggiunte?
Io li ho usati, ma non sempre mi funzionano perchè? A volte aggiungono tranquillamente la voce alla lista altre volte mi da errore.. altre volte nn fa niente. Ho pensato di aver sbagliato il server che ascolta....

Vi posto il codice:

codice:
public class AscoltoAggiunte
    {
     Form3P modifica;
     public AscoltoAggiunte(Form3P mod)
     {
           modifica = mod;
     }

     public void avvia()
     {
         try
         {              
              TcpListener TcpList = new TcpListener(8083);
              Byte[] bytes = new Byte[256];
              String str = null;
              TcpList.Start();
              while (true)
              {
                    TcpClient cl = TcpList.AcceptTcpClient();
                    NetworkStream mess = cl.GetStream();
                    int i;
                    while((i=mess.Read(bytes, 0, bytes.Length))!= 0)
                   {
                      // Converto bytes in stringa
                      str = System.Text.Encoding.ASCII.GetString(bytes, 0, i);  
                    }
                   ....
                   elabora la stringa ricevuta
                   ....
                   
                    try{
                         modifica.Invoke(modifica.myDelegate, new Object[] { codice.ToString(), descrizione, categoria });
                       return;
                    }catch(Exception ex){
                       Console.WriteLine("eccezione invoke: {0}", ex.ToString());}
                   
             cl.Close();
        }//chiuso while
//chiuso try
//chiuso avvia
codice:
 public partial class Form3P : Form
    {
      .....
        public delegate void AddListItem(String codice, String descrizione, String categoria);
        public AddListItem myDelegate;
  

        public Form3P(String nFile,String indirizzoS)
        {
            InitializeComponent();
            myDelegate = new AddListItem(AddListItemMethod);
            
            // creo le liste
        }
     //faccio partire ascolto aggiunte


    public void AddListItemMethod(String codice,String descrizione, String categoria)
        {
            //creo voce per la lista
            ListViewItem f = new ListViewItem(codice.ToString());
            f.SubItems.Add(descrizione);
            f.SubItems.Add("0");
            //aggiungo nella lista corretta
            if (categoria.Equals("EXTRA"))
            {
                listaExtra.Items.Add(f);
            }
            else if (categoria.Equals("PRIMI"))
            {
                listaPrimi.Items.Add(f);
            }
            ecc..
         }
        

    }
Grazie