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, dienew
s dasMemoryStream
.
Warum ist nicht der vorherigeMemoryStream
Speicher trotz zurückgefordertusing
Aussage? Wie erzwinge ich die Freigabe des von derMemoryStream
?