我有代码在后台工作程序中运行,它验证提到的链接(网站)是否有效。如果无效,程序会出错并继续检查另一个链接。为了实现这一点,我使用 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
如果 backgroundworker 正在运行,调试器永远不会到达“ondownloadcomplete1”