我有一个函数uploadfile()
,在这个函数中我分块上传文件:
Stream writer = request.GetRequestStream();
byte[] bufferUploadSize = new byte[4096];//ex.
FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read);
int bytesRead = 0;
while ((bytesRead = fileStream.Read(bufferUploadSize,0, bufferUploadSize.Length)) != 0)
{
writer.Write(bufferUploadSize, 0, bytesRead);
}
fileStream.Close();
我这样做没有错误,但是当我在 Windows 任务管理器中观看我的程序时,我意识到我的程序使用的内存会增加,直到文件大小。例如,当我上传一个 1GB 的文件时,内存会一点一点地增加,直到 1GB。为什么?
我可以将代码更改为仅使用 40KB 而不是 1GB RAM 吗?