Как отловить поток который грузит проц? - C#
Формулировка задачи:
Написал простенький асинхронный сервер , сейчас отлаживаю и убираю косяки. Заметил такую фишку , что при отключении клиента , приложение - сервер продолжает грузить проц на 100% каким то потоком (самостоятельно я потоков никаких не создаю)
Подскажите как отловить этот косяк ибо исключений никаких не возникает
private void ReceiveCallbackCmd(IAsyncResult result) { ConnectionInfo connection = (ConnectionInfo)result.AsyncState; try { int bytesRead = 0; if (connection.Socket.Connected) bytesRead = connection.Socket.EndReceive(result); if (bytesRead > 0) { // connection.Socket.BeginReceive(connection.Buffer, 0, connection.Buffer.Length, SocketFlags.None, new AsyncCallback(ReceiveCallback), connection); } else { CloseConnection(connection); return; } } catch (Exception Er) { this.ErrorLog = Er.Message + " -ReceiveCallback"; CloseConnection(connection); return; } }
private void CloseConnection(ConnectionInfo connections) { try { lock (_connections) { if (connections.Socket.Connected) { this.ServerLog = "Отключение: " + GetDNS(connections.Socket.RemoteEndPoint) + " - " + DateTime.Now; connections.Socket.Shutdown(SocketShutdown.Both); connections.Socket.Close(); if (_connections.Contains(connections)) _connections.Remove(connections); } } } catch (Exception Er) { this.ErrorLog = Er.Message + " -CloseConnection()"; } }
Гуру подскажите куда копать , пробовал слипы вставлять в колбеки безрезультатно , фоновый поток(и) забирают все свободные ресурсы проца , причем все работает корректно
Решение задачи: «Как отловить поток который грузит проц?»
textual
Листинг программы
Socket clientSocket = socket.EndAccept(ar); socket.BeginAccept(); // создаем буферы // делаем проверки