我有一组Uri列表,我想要"点击"它们。为了实现这个目的,我尝试为每个Uri创建一个新的Web浏览器控件,并为每个Uri创建一个新线程。但是,我的问题是线程在文档完全加载之前就结束了,所以我从来没有机会使用DocumentComplete事件。如何解决这个问题?
var item = new ParameterizedThreadStart(ClicIt.Click);
var thread = new Thread(item) {Name = "ClickThread"};
thread.Start(uriItem);
public static void Click(object o)
{
var url = ((UriItem)o);
Console.WriteLine(@"Clicking: " + url.Link);
var clicker = new WebBrowser { ScriptErrorsSuppressed = true };
clicker.DocumentCompleted += BrowseComplete;
if (String.IsNullOrEmpty(url.Link)) return;
if (url.Link.Equals("about:blank")) return;
if (!url.Link.StartsWith("http://") && !url.Link.StartsWith("https://"))
url.Link = "http://" + url.Link;
clicker.Navigate(url.Link);
}
WebBrowser
对象的活动状态(以保存状态/cookies等),并随时间执行多个Navigate()
调用。但是我不确定在哪里放置Application.Run()
调用,因为它会阻止进一步的代码执行。有什么提示吗? - dotNETApplication.Exit();
让Application.Run()
返回。 - Mike de Klerk