Wie erzwinge ich die Freigabe des von MemoryStream belegten Speichers?

Ich habe folgenden Code:

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();
    }
}

was ich auf einem 32-Bit-Rechner laufe.

Die erste Iteration endet einwandfrei und bei der nächsten Iteration erhalte ich eineSystem.OutOfMemoryException Ausnahme in der Zeile, dienews dasMemoryStream.

Warum ist nicht der vorherigeMemoryStream Speicher trotz zurückgefordertusing Aussage? Wie erzwinge ich die Freigabe des von derMemoryStream?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage