如何终止C#中的异步函数

本文关键字:异步 函数 何终止 终止 | 更新日期: 2023-09-27 18:00:20

如何终止此方法/下载功能?

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");
}

基本上取消下载功能

如何终止C#中的异步函数

执行此操作:webClient.CancelAsync();

使用文档中的CancelAsync

备注

如果操作挂起,则此方法在底层WebRequest。当您调用CancelAsync时,您的应用程序仍然接收与该操作相关联的完成事件。对于例如,当您调用CancelAsync来取消DownloadStringAsync时操作,如果已为DownloadStringCompleted事件,您的事件处理程序接收操作已结束的通知。要了解操作已成功完成,请检查事件数据对象中DownloadDataCompletedEventArgs的基类传递给事件处理程序。如果没有异步操作进步,这种方法没有任何作用。

调用CancelAsync()方法。