WebBrowser navigation is asynchronous already (just the navigation, mind, before all the naysayers pitch in!) so effectively you're starting a thread and invoking a callback to the UI thread to start yet another thread to do the navigation. If navigating is all you want to do then none of it is taking place in the thread that you have here.

I said a long time ago that the way to handle checking that a website was loaded if the program was otherwise not dependent on it was to start a timer to check when the particular element of interest was available and either process it or raise an alert or event at that time and then stop.