相关疑难解决方法(0)

如何强制MemoryStream占用释放内存?

我有以下代码:

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();
    }
}
Run Code Online (Sandbox Code Playgroud)

我在32位机器上运行.

第一次迭代完成就好了,然后下一个迭代我收到了System.OutOfMemoryException关于该行例外newS中MemoryStream.

MemoryStream尽管有using声明,为什么以前的记忆没有被收回?我如何强制释放所使用的内存MemoryStream

.net c# garbage-collection memory-management idisposable

14
推荐指数
1
解决办法
8626
查看次数