Задать вопрос

Как остановить скачивание 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 });
            }
        }
  • Вопрос задан
  • 193 просмотра
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • OTUS
    C# Developer. Professional
    6 месяцев
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 1
    1 неделя
    Далее
  • Software-testing.ru
    Программирование на C# для тестировщиков
    10 недель
    Далее
Пригласить эксперта
Ответы на вопрос 3
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
В методе download есть параметр cancelationToken посмотрите документацию и просто сделайте по ней
Ответ написан
@cicatrix
было бы большой ошибкой думать
Ну, документацию читать не принято же...
WebClient.DownloadFileTaskAsync Метод
В платформа .NET Framework и .NET Core 1,0 можно отменить асинхронные операции, которые не были завершены, вызвав CancelAsync метод.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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