title: How can I navigate webbrowser synchronously?
body: <p>I have looked around quite a time and I have noticed that everybody saying that webbrowser is working asynchronously, and I think its wrong, because when I trigger Navigate and even implement the documentComplete event, nothing happens.</p>
  
  <p>I have noticed that when the main thread (the thread that owns the webbrowser) has done his job only then the webbrowser start navigating, probably because after that the browser will use the main thread to execute his commands.</p>
  
  <p>now that not good because I want to be able to control the timing, I want to be able to know when the webbrowser done loading the page and then to continue with my work. Polling doesn't work here because of what I said earlier, the webbrowser doesn't even start navigating.</p>
  
  <p>example:</p>
  
  <pre><code>WebBrowser browser = new WebBrowser();
  
  browser.Navigate(url);
  while(browser.ReadyState != WebBrowserReadyState.Complete)
  {
  }
  
  // Then executing the next steps...
  </code></pre>
  
  <p>How can I use the WebBrowser synchronously so I can be able to use the document property and other stuff of the WebBrowser, I want to create some sort of a blocking method So I can have control and know when the WebBrowser done loading.</p>