Uma maneira melhor de esperar que uma variável mude de estado no VB.net

Eu tenho um loop que passa por vários valores. Com cada valor iterado, uma página é carregada em um controle webbrowser (com o valor passado como um parâmetro) e quando a página é carregada e lida, o loop deve ir para o próximo valor na lista e continuar até que todos os valores sejam processados. Eu preciso de uma maneira de pausar o procedimento enquanto o site está carregando de forma assíncrona e, em seguida, retomar uma vez que o processo de carregamento / leitura da página esteja completo.

O jeito que estou fazendo é usando algo assim, onde "ReadingInProgress" é uma variável global:

      ReadingInProgress = True
      wb.Navigate("http://mywebsite.com/mypage.aspx" & c)

      While ReadingInProgress
        Application.DoEvents()
      End While

O evento "DocumentCompleted" do conjunto de controles webrowser "ReadingInProgress" para false que faz com que o loop while saia e retome o procedimento. Isso funciona, mas percebo que isso sobrecarrega a CPU. Existe uma maneira melhor, menos intensiva da CPU para fazer isso?

Obrigado!

questionAnswers(2)

yourAnswerToTheQuestion