私は Webclient を使用してファイルをアップロードしていますが、ユーザーが中止をクリックしたときに発生します。アップロードをキャンセルしたいのですが、ファイルは完了するまでアップロードを続けます。中止ボタンで wc.CancelAsync を発行しました。これにより、フォームが閉じられ、Program.cs で TargetInvocationException was unhandled エラーが発行されました。
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new frmUpload());
}
ここに私のコードの一部があります
WebClient wc = new WebClient();
private void buttonAbort_Click(object sender, EventArgs e)
{
wc.CancelAsync();
}
//Upload code
try
{
wc.UploadFileAsync(Uripath, localPath);
wc.UploadProgressChanged += uploadBarStat;
wc.UploadFileCompleted += new UploadFileCompletedEventHandler(doneFTP);
}
私の質問は、BackgroundWorker 内で Webclient.DownloadFileをキャンセルするのとほぼ同じです。
アップロードをスムーズにキャンセルするには何が必要ですか? または例外エラーをトラップしますか?
ティア・スティーブ