Слишком долгое создание FileStream - C#
Формулировка задачи:
Доброго времени суток. Мне необходимо отправлять по сети большие файлы (от 1.4гб до 5гб). Проблема заключается в слишком долгом создании FileStream для больших файлов...
Подскажите, есть возможность сразу записывать байты файла в сетевой потом networkStream? (либо получать байты в буфер параллельно с созданием стрима)
using (var fileStream = new FileStream(filename, FileMode.Open, FileAccess.Read))
{
byte Resp = new byte[MAXBUFFER];
if (fileStream.Length > Resp.LongLength)
{
long fullsize = fileStream.Length;
do
{
fileStream.Read(Resp, 0, Resp.Length);
await networkStream.WriteAsync(Resp, 0, Resp.Length);
fullsize -= Resp.Length;
if (fullsize <= Resp.Length)
{
fileStream.Read(Resp, 0, (int)fullsize);
await networkStream.WriteAsync(Resp, 0, (int)fullsize);
break;
}
}
while (true);
}
else
{
fileStream.Read(Resp, 0, (int)fileStream.Length);
await networkStream.WriteAsync(Resp, 0, (int)fileStream.Length);
}
Resp = null;
fileStream.Dispose();
}Решение задачи: «Слишком долгое создание FileStream»
textual
Листинг программы
using (var fileStream = new FileStream(filename, FileMode.Open, FileAccess.Read))
{
await fileStream.CopyToAsync(networkStream).ConfigureAwait(false);
}