Как завершить асинхронную функцию в C # - PullRequest
0 голосов
/ 26 июня 2011

Как можно было бы прекратить этот метод / функцию загрузки?

private void Download_Click(object sender, EventArgs e)
{
    WebClient webClient = new WebClient();
    webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(Completed);
    webClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressChanged);
    webClient.DownloadFileAsync(new Uri("http://google.com/test.zip"), @"test.zip");

}

В основном отменить функцию загрузки

Ответы [ 3 ]

3 голосов
/ 26 июня 2011

Сделайте это: webClient.CancelAsync();

2 голосов
/ 26 июня 2011

Использование CancelAsync, из документации :

Замечания

Если операция находится в состоянии ожидания, этот метод вызывает Abort для основной веб-запрос. Когда вы вызываете CancelAsync, ваше приложение по-прежнему получает событие завершения, связанное с операцией. За Например, когда вы вызываете CancelAsync, чтобы отменить DownloadStringAsync операции, если вы указали обработчик события для Событие DownloadStringCompleted, ваш обработчик событий получает уведомление о завершении операции. Чтобы узнать, является ли операция завершена успешно, проверьте свойство Отменено на базовый класс DownloadDataCompletedEventArgs в объекте данных события передается в обработчик событий. Если нет асинхронной операции в прогресс, этот метод ничего не делает.

1 голос
/ 26 июня 2011

Вызовите метод CancelAsync().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...