У меня есть программа для потоковой передачи мультимедиа, которая создает два огромных MemoryStreams, а затем должна обнулить их по завершении. Проблема в том, что память не восстанавливается после того, как я вызову ОБА MemoryStream.SetLength (0); и MemoryStream.Capacity = 0. GC.Collect (), кажется, решает проблему, но я слышал, что это плохая практика программирования, потому что это приводит к зависанию всех потоков в приложении; хотя зависание потоков не будет проблемой в течение короткого времени, которое потребуется для очистки памяти. Тем не менее, было бы неплохо, если бы существовал другой способ решения проблемы. Есть предложения?