Xar*_*das 3 c# multithreading webbrowser-control
我正在尝试实现简单的网页截屏程序.当我在UI线程上使用我的代码时,所有似乎都没有问题,但是当我从非UI线程调用方法时,我无法再触发WebBrowserDocumentCompleted事件.我也试过这个:
System.Windows.Forms.WebBrowser wb = new System.Windows.Forms.WebBrowser();
wb.DocumentCompleted += WebBrowserDocumentCompleted;
wb.Visible = true;
wb.ScrollBarsEnabled = false;
wb.ScriptErrorsSuppressed = true;
wb.Navigate(url);
while (wb.ReadyState != System.Windows.Forms.WebBrowserReadyState.Complete)
{
Application.Current.Dispatcher.Invoke(DispatcherPriority.Background,
new Action(delegate { }));
}
Run Code Online (Sandbox Code Playgroud)
程序只是在循环中挂起,无限期.有任何想法吗?
像这样的东西:
public void Start()
{
System.Windows.Forms.WebBrowser wb = new System.Windows.Forms.WebBrowser();
wb.DocumentCompleted += WebBrowserDocumentCompleted;
wb.Visible = true;
wb.ScrollBarsEnabled = false;
wb.ScriptErrorsSuppressed = true;
wb.Navigate(url);
}
private void WebBrowserDocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
if( (sender as WebBrowser).ReadyState == System.Windows.Forms.WebBrowserReadyState.Complete)
{
// Do what ever you want to do here when page is completely loaded.
}
}
Run Code Online (Sandbox Code Playgroud)
我希望这可以帮助你完成任务.
| 归档时间: |
|
| 查看次数: |
11697 次 |
| 最近记录: |