Как остановить скачивание WebClient?

Доброго времени суток.
Вопрос такой, не получается сделать остановку скачивания WebClient
Допустим, начали скачивание, но, если пользователь нажал на кнопку, вызвался отдельный метод который бы завершал скачивание, подсобите...
public async Task DownloadFiles(string path)
        {
            using (WebClient wc = new WebClient())
            {
                wc.DownloadProgressChanged += Wc_DownloadProgressChanged;
                foreach (var fileName in downloadProvider.Files)
                {
                    CreateNeccessaryDirs(path + @"\" + fileName.Value);
                    if (File.Exists(path + @"\" + fileName.Value))
                    {
                        continue; 
                    }
                    prevDownloadedSize = 0L;
                    StartDownload?.Invoke(this, new StartDownloadFileArgs { FileName = fileName.Value });
                    stopwatch.Restart();
                    await wc.DownloadFileTaskAsync(new Uri(master_url + "/" + fileName.Key), path + @"\" + fileName.Value);
                    stopwatch.Stop();
                }
                ProgressChanged?.Invoke(this, new Events.DownloadProgressChangedEventArgs() { NewPercentage = 100 });
            }
        }
  • Вопрос задан
  • 177 просмотров
Пригласить эксперта
Ответы на вопрос 3
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
В методе download есть параметр cancelationToken посмотрите документацию и просто сделайте по ней
Ответ написан
@cicatrix
было бы большой ошибкой думать
Ну, документацию читать не принято же...
WebClient.DownloadFileTaskAsync Метод
В платформа .NET Framework и .NET Core 1,0 можно отменить асинхронные операции, которые не были завершены, вызвав CancelAsync метод.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы