DownloadFileAsync 操作を安全にキャンセルする最善の方法は何ですか?
ダウンロードを開始し、その他の側面を管理するスレッド (バックグラウンド ワーカー) があり、スレッドがCancellationPending == true.
ダウンロードを開始した後、ダウンロードが完了するまで、スレッドは座ってスピンします。スレッドはキャンセルされます。
スレッドがキャンセルされた場合、ダウンロードをキャンセルしたいです。これを行うための標準的なイディオムはありますか? を試しCancelAsync
ましたが、そこから WebException が発生しました (中止されました)。これがキャンセルを行うクリーンな方法かどうかはわかりません。
ありがとう。
編集: 最初の例外は、オブジェクトが内部ストリーム (コール スタック) に配置されていることです。
System.dll!System.Net.Sockets.NetworkStream.EndRead(System.IAsyncResult asyncResult) System.dll!System.Net.PooledStream.EndRead(System.IAsyncResult asyncResult)