Hola que tal,
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 originalpublic 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.