我有一个网址列表,我需要浏览它们。如何确保每个网址都会调用DocumentCompleted事件?我已经尝试创建了许多线程,并尝试使用单个线程,但应用程序仍然没有为每个URL触发事件DocumentCompleted。
有没有办法在url列表中创建一个循环并让它们调用DocumentCompleted,直到线程调用下一个url?
答案 0 :(得分:3)
要实现这一点,async/await
和Task Parallel Library可能会派上用场。它们允许为异步逻辑(一个接一个地处理多个导航的DocumentCompleted
事件)拥有熟悉的伪线性代码流。
我针对 WinForm应用here 以及控制台应用here 回答了类似的问题。
如果您需要定位.NET 4.0但使用VS2012 +进行开发,您仍然可以使用async/await
,Microsoft会为此提供Microsoft.Bcl.Async
库。
如果此项目没有C#5.0,您可以yield
使用{{1}}。
答案 1 :(得分:2)
如果页面上有脚本错误,则可能永远不会完成。你应该为那个事件做一个超时。