Im having to load a couple of pages consecutively in WPF application(.NET v4.0) with WebBrowser
control and the easiest way to pause was to use a while loop and check for IsLoaded
property. I was wondering if there is something better. The following SO response suggests use of AutoResetEvent
but it doesn't seem to work i.e., LoadCompleted
event isn't triggered and the AutoResetEvent
is never set. Is there something that I've missed
private Uri firstURI = new Uri("http://google.com", UriKind.RelativeOrAbsolute);
private Uri secondURI = new Uri("http://duckduckgo.com/", UriKind.RelativeOrAbsolute);
AutoResetEvent logEvent = new AutoResetEvent(false);
public MainWindow()
{
InitializeComponent();
webBrowser.Loaded += webBrowser_Loaded;
webBrowser.LoadCompleted += webBrowser_LoadCompleted;
webBrowser.Navigate(firstURI);
while(webBrowser.IsLoaded()){}; //logEvent.WaitOne();
webBrowser.Navigate(secondURI);
while(webBrowser.IsLoaded()){}; //logEvent.WaitOne();
// do something
}
void webBrowser_Loaded(object sender, RoutedEventArgs e)
{
logEvent.Set();
}
void webBrowser_LoadCompleted(object sender, NavigationEventArgs e)
{
logEvent.Set();
}