Como faço para forçar a liberação da memória ocupada pelo MemoryStream?

Eu tenho o seguinte código:

const int bufferSize = 1024 * 1024;
var buffer = new byte[bufferSize];
for (int i = 0; i < 10; i++)
{
    const int writesCount = 400;
    using (var stream = new MemoryStream(writesCount * bufferSize))
    {
        for (int j = 0; j < writesCount; j++)
        {
            stream.Write(buffer, 0, buffer.Length);
        }
        stream.Close();
    }
}

que eu corro em uma máquina de 32 bits.

A primeira iteração termina muito bem e, em seguida, na próxima iteração eu recebo umSystem.OutOfMemoryException exceção na linha quenews oMemoryStream.

Por que não é o anteriorMemoryStream memória recuperada apesarusing declaração? Como faço para forçar a liberação da memória usada peloMemoryStream?

questionAnswers(4)

yourAnswerToTheQuestion