Слишком долгое создание 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);
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д