Загрузка не завершена, когда фоновый работник занят доступом к веб-сайту - PullRequest
0 голосов
/ 01 октября 2019

У меня работает код в фоновом режиме, который проверяет, является ли указанная ссылка (веб-сайт) действительной. если он недействителен, процедура выдает ошибку и переходит к проверке другой ссылки. Для этого я использую webrequest и webresponse.

Проблема начинается, когда фоновый работник обращается к ссылкам, если я пытаюсь загрузить что-то из основного потока (что работает совершенно нормально, если backgroundworker не работает), загрузкане завершено.

Код для фонового работника:

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"

...