Есть ли простой способ обработки загруженных данных во время загрузки? Я не хочу ждать завершения загрузки, чтобы перед обработкой иметь все данные на памяти или диске. Я хочу сделать это, потому что мои данные сжаты, и я хотел бы распаковать байтовые пакеты в прогоне и записать их прямо на диск. Чтобы я никогда не использовал больше памяти, чем один пакет загрузки.Процесс загрузки данных асинхронный
Я пытался ужиться с классом WebClient, но я не узнал, как получить доступ к последним загруженным байтам в событии DownloadProgressChanged.
Что-то вроде этого:
WebClient wc = new WebClient();
Uri uri = new Uri(myURL);
wc.DownloadProgressChanged += wc_DownloadProgressChanged;
wc.DownloadDataAsync(uri);
...
void wc_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
ProcessData(e.Bytes,e.BytesReceived); //e.Bytes should access the downloaded byte packet
//but it doesn't exist
}
Я понял это уже с помощью Libcurl, но я хотел бы знать, если это возможно без использования внешних библиотек.
вы всегда можете пойти вниз и использовать HTTP-запросы или даже TCP соединений, чтобы иметь лучший контроль, .NET имеет классы для обоих вариантов. – Luizgrs
Спасибо, я посмотрю. – Showdown