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.
inizializzati cosìcodice:Thread sks_receiver; Thread sks_processor;
nel metodo sks_listencodice:this.sks_receiver = new Thread(new ThreadStart(this.sks_listen)); this.sks_receiver.Start(); this.sks_processor = new Thread(new ThreadStart(this.sks_process));
avvio l'altro thread.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(); } } }
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.


Rispondi quotando
