Очистка результата от WebClient - PullRequest
0 голосов
/ 14 марта 2019

У меня есть следующий раздел кода для веб-клиента:

var client = new WebClient();
client.DownloadProgressChanged += (sender, args) => 
client_DownloadProgressChanged(sender, args, this.Context.ConnectionId);
client.DownloadDataCompleted += (sender, evt) =>
{
    byte[] result = evt.Result;
    aLongRunningTask(result);**
}

Моя проблема заключается в том, что функция "aLongRunningTask" должна быть запущена после завершения метода downloaddata, который работает нормально, но, поскольку файл, который я получаю, очень большой, в итоге получается, что строка в памяти занимает много места в памяти, в котором нет необходимости, так как мне нужен только байт [].

evt.Result, к сожалению, свойство только для чтения, поэтому я не могу очистить его и не могу обнулить клиента, так как я запускаю aLongRunningTask.

Есть ли способ перезаписать evt.Result, чтобы его можно было очистить, или другой способ уменьшить использование памяти.

1 Ответ

0 голосов
/ 14 марта 2019

Как насчет использования using как это

using(var client = new WebClient()){

//your logic

}
...