バックグラウンドワーカーで実行されているコードがあり、言及されたリンク(ウェブサイト)が有効かどうかを検証します。有効でない場合、手順はエラーになり、別のリンクのチェックに進みます。これを達成するために、私は webrequest と webresponse を使用しています。
問題は、バックグラウンド ワーカーがリンクにアクセスしているときに、メイン スレッドから何かをダウンロードしようとすると (バックグラウンド ワーカーが動作していない場合は完全に正常に動作します)、ダウンロードが完了しない場合に発生します。
バックグラウンド ワーカーのコード:
Try
Dim bgwebRequest As WebRequest
Dim bgwebresponse As WebResponse
bgwebRequest = WebRequest.Create(websitelink)
bgwebRequest.Timeout = 200
bgwebresponse = bgwebRequest.GetResponse()
'//code for website found
Catch ex As Exception
'//code for website not found
End Try
ファイルをダウンロードするためのコード:
Dim download As WebClient = New WebClient
download.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64;
x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84
Safari/537.36")
download.DownloadFileAsync(New Uri(directdownloadlink), downloadpathinpc)
AddHandler download.DownloadFileCompleted, AddressOf OnDownloadComplete1
download.Dispose()
ondownloadcomplete1 のコード:
'//run tasks that needs to completed if download is comolete
バックグラウンドワーカーが実行されている場合、デバッガーは「ondownloadcomplete1」に到達しません