Ciao a tutti,
mi faccio vivo dopo del tempo per chiedervi una cosa.
Non ho capito bene come usare i thread in questa classe socketserver che ho creato.
Vi spiego.
Ho pensato di utilizzare due thread all'interno di questa classe.
codice:
Thread sks_receiver;
Thread sks_processor;
inizializzati così
codice:
 
this.sks_receiver = new Thread(new ThreadStart(this.sks_listen));
this.sks_receiver.Start();
this.sks_processor = new Thread(new ThreadStart(this.sks_process));
nel metodo sks_listen
codice:
public void sks_listen()         
{            
[... omissis ...]
                 while (this.sks_is_listen)
                 { 
                    //ricezione messaggio
                     if (((asyncsock)this.sks_asyn_array[this.sks_asyn_array.Count - 1]).asyn_rec_msg != "" || ((asyncsock)this.sks_asyn_array[this.sks_asyn_array.Count - 1]).asyn_rec_msg.IndexOf("<EOF>") > -1)
                     {             
                         this.sks_processor.Start();
                         this.sks_asyn_array.Add(new asyncsock());
                         ((asyncsock)this.sks_asyn_array[this.sks_asyn_array.Count - 1]).asyn_socket.Bind(endpoint);
                         ((asyncsock)this.sks_asyn_array[this.sks_asyn_array.Count - 1]).asyn_socket = listener.AcceptSocket();
                     }
                 }
}
avvio l'altro thread.
alla prima socket che si connette non c'è problema, ma dalla seconda l'eccezione data è questa



ho provato a gestire i casi in vari modi controllando con IsAlive con ThreadStatus, ma in un modo o nell'altro mi fermo sempre lì.

come posso risolvere questo nodo?

grazie a tutti coloro che mi aiuteranno.