このコードは、ある種のメモリリークを引き起こします。私はそれがnew byte[]
によって引き起こされたと仮定します。 しかし、GCはこれを避けるべきではありませんか?プログラムは、十分な長さに実行した場合、コードはOutOfMemoryException例外OutOfMemoryException in C#
using (var file = new FileStream(fileLoc, FileMode.Open))
{
int chunkSize = 1024 * 100;
while (file.Position < file.Length)
{
if (file.Length - file.Position < chunkSize)
{
chunkSize = (int)(file.Length - file.Position);
}
byte[] chunk = new byte[chunkSize];
file.Read(chunk, 0, chunkSize);
context.Response.BinaryWrite(chunk);
}
}
'context'とは何ですか? –
HttpContextコンテキスト。 – chriszero
プロファイラを使用して、このコードを原因と判断しましたか? –