Tag: 流内存

FileStream.Write()抛出OutOfMemoryException的可能原因?

我有10个线程将数千个小缓冲区(每个16-30个字节)写入随机位置的大文件中。 一些线程在FileStream.Write()opreation上抛出OutOfMemoryException。 导致OutOfMemoryException的原因是什么? 要找什么? 我正在使用像这样的FileStream(对于每个书面项目 – 此代码从10个不同的线程运行): using (FileStream fs = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write, FileShare.ReadWrite, BigBufferSizeInBytes, FileOptions.SequentialScan)) { … fs.Write(); } 我怀疑在FileStream中分配的所有缓冲区都不会被GC及时释放。 我不明白为什么CLR而不是抛出不只是运行GC循环并释放所有未使用的缓冲区?