How to navigate in a list of links using webbrowse

2019-02-17 12:39发布

问题:

I have a list of url and I need to navigate them. How can I make sure that every url will call the DocumentCompleted event ? I've already tried to create many threads and tried using a single thread too but the app is still not firing the event DocumentCompleted for each url.

Is there a way to make a loop in a list of urls and make them call a DocumentCompleted until the thread calls the next url ?

回答1:

To implement this, async/await and Task Parallel Library may come in handy. They allow to have familiar, pseudo-linear code flow for what is an asynchronous logic (handling DocumentCompleted events for multiple navigations, one after another).

I answered a similar question for a WinForm app here and for a console app here.

If you need to target .NET 4.0 but develop with VS2012+ , you still can use async/await, Microsoft provides the Microsoft.Bcl.Async library for that.

If C# 5.0 is not available for this project, you can use yield, as described here.



回答2:

If a page has scripts errors on it, it is possible it will never complete. You should make a timeout for that event.