为了账号安全,请及时绑定邮箱和手机立即绑定

新线程中的WebBrowser控件

新线程中的WebBrowser控件

函数式编程 2019-05-31 16:55:50
新线程中的WebBrowser控件我有一个列表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);}
查看完整描述

3 回答

?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

根据我过去的经验,Web浏览器不喜欢在主应用程序线程之外操作。

尝试使用httpwebrequestation,您可以将它们设置为异步,并为响应创建一个处理程序,以了解响应何时是成功的:

如何使用.httpweb请求-net-异步


查看完整回答
反对 回复 2019-05-31
  • 3 回答
  • 0 关注
  • 770 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信