el tema es que estoy usando un subproceso asincronico (socket) y un thread. El problema esta que cuando cierro el formulario el subproceso no se cierra y sigue a la espera... el codigo es corto y simple, para que puedan ver:
(es C Sharp)
Código C:
Ver original
public static ManualResetEvent allDone = new ManualResetEvent(false); public void escuchar() { IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 1050); Socket escuchar = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); try { escuchar.Bind(ipep); escuchar.Listen(100); while (true) { allDone.Reset(); mensaje = "A la espera de peticiones..."; escuchar.BeginAccept(new AsyncCallback(aceptar), escuchar); allDone.WaitOne(); } } catch (Exception e) { mensaje = e.ToString(); } } private void Form1_Load(object sender, EventArgs e) { Thread tarea = new Thread(escuchar); tarea.Start(); }
Con este codigo, cuando salgo del formulario (por la cruz/equis) el codigo sigue ejecutandose y no entiendo el porque... si alguien me podria explicar se lo agradeceria, un saludo.