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.