1
背景情報:私は、URLのリストを実行しているプログラムを持っています。各URLは一度に1つずつダウンロードされますが、バックグラウンドスレッドで実行されてUIの応答性を維持します。進行状況を報告するために、私はDownloadFileAsyncメソッドを使用しています。 私の問題は、ダウンロードを直ちに終了するキャンセルボタンを持つことができるようにすることです。私のコードは、私が保留中のキャンセルを確認するためにループを挿入する方法や場所を考えることはできませんBackgroundWorker内でWebclient.DownloadFileを取り消します。
AutoResetEvent autoMobile = new AutoResetEvent(false);
WebClient dclient = new WebClient();
//setup event handlers... for progress, etc...
dclient.DownloadFileAsync(new Uri(egg.DownloadURL), egg.LocalFilePath);
autoMobile.WaitOne();
//end of DoWork
の線に沿って何かを行きます。私はスレッドを少ししか理解しておらず、AutoResetEventも完全に理解していません。
これは実際に作業者を解放します。アイデアは私の心を崩したようだった。ありがとうございました – PlagueEditor