Я написал небольшой класс Server, который в основном представляет собой оболочку TcpListener и средство для создания потоков ThreadPool.
Потоки запускают Server :: ProcessMessage (), который выполняет некоторую работу, отправляя сообщения туда и обратно, а затем завершает работу в концеоб этом.
Но непосредственно перед выходом из функции я также вызываю TcpClient.GetStream (). Close (), а затем TcpClient.Close ().Я не использую Mutex или ManualResetEvent WaitHandles.
Протестировал клиент и сервер, все работает, кроме диспетчера задач, он показывает, что использование памяти продолжает увеличиваться на каждом сервере :: ProcessMessage ().Даже после того, как все клиентские приложения были отключены и закрыты, использование памяти все еще там, но не уменьшилось.
Сервер работает как служба Windows.
Как узнать, является ли это знакомутечки памяти или просто сборщик мусора не выполняет свою работу (пока)?
Спасибо.
РЕДАКТИРОВАТЬ: Я думаю, что нашел причину моей "утечки памяти".У меня был Console.WriteLine () в моем Server :: ProcessMessage ().Тем не менее, было бы полезно, если бы был более простой способ проверить наличие проблем с памятью.