2011-06-26 28 views
0

このメソッド/ダウンロード関数をどのように終了できますか?C#で非同期関数を終了する方法

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

} 

基本的にダウンロード機能に

+0

方法については、MSDNライブラリの記事の「注意事項」を参照してください。 –

答えて

3

をキャンセルし、これを実行します。webClient.CancelAsync();

+0

これを外部メソッドからどのように呼び出すのですか? –

+0

@James:WebClientインスタンスへの参照をスコープから外すのではなく、どこかに保存する必要があります。 –

1

CancelAsync()メソッドを呼び出します。 documentationから使用CancelAsync

2

、:

備考

操作が保留されている場合は、このメソッドの呼び出しは、WebRequestクラスの基礎となる に中止します。 CancelAsyncを呼び出すと、アプリケーション は操作に関連付けられた完了イベントを受け取ります。 の場合、DownloadStringAsync 操作をキャンセルするためにCancelAsyncを呼び出すと、 DownloadStringCompletedイベントのイベントハンドラを指定した場合、イベントハンドラは操作が終了したことを通知する を受け取ります。 操作が正常に完了したかどうかを確認するには、イベントハンドラに渡されたイベントデータオブジェクト の 基本クラスのDownloadDataCompletedEventArgsのCanceledプロパティを確認します。 に非同期操作がない場合、このメソッドは何も行いません。

関連する問題