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 quenew
s 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
?