Как эффективно записать несколько диапазонов данных из одного файла в Интернете одновременно в один файл - PullRequest
0 голосов
/ 06 апреля 2019

Я хочу, чтобы несколько потоков сетевого потока записывали / загружали в один файл одновременно.Например, у вас есть один файл и вы скачиваете диапазоны: 0-1000 1001-2002 2003-3004 ... И я хочу, чтобы они все записали свои принимающие байты в один файл как можно более эффективно.

Прямо сейчас яЯ загружаю каждую часть диапазона в один файл и объединяю их позже, когда они все будут закончены, в окончательный файл.

Я бы хотел, чтобы они записались в один файл, чтобы уменьшить использование диска, и ячувствую, что все это можно сделать лучше.

1 Ответ

0 голосов
/ 06 апреля 2019

Вы можете использовать файлы, отображаемые в постоянной памяти, см. https://docs.microsoft.com/en-us/dotnet/standard/io/memory-mapped-files

Сохраненные файлы - это отображенные в памяти файлы, связанные с исходным файлом на диске. Когда последний процесс завершил работу с файлом, данные будут сохранены в исходном файле на диске. Эти отображенные в память файлы подходят для работы с очень большими исходными файлами.

...