【发布时间】:2018-03-09 19:56:37
【问题描述】:
我在 for 循环中有一个 url 列表,一次加载一个 url,但 FinishLoadingFrameEvent 事件只被调用一次。
我的完整代码是这样的
private List<string> urls = //fetch from db;
ManualResetEvent waitEvent = new ManualResetEvent(false);
BrowserView webView = new WPFBrowserView();
string path = //my local path;
public MainWindow()
{
InitializeComponent();
mainLayout.Children.Add((UIElement)webView.GetComponent());
webView.Browser.FinishLoadingFrameEvent += delegate (object sender, FinishLoadingEventArgs e)
{
System.Threading.Thread.Sleep(5000);
if (e.IsMainFrame)
{
DOMDocument document = e.Browser.GetDocument();
var html = document.DocumentElement.InnerHTML;
System.IO.File.WriteAllText(path, html);
waitEvent.Set();
}
};
foreach (var url in urls)
{
webView.Browser.LoadURL(url);
waitEvent.WaitOne();
waitEvent.Reset();
}
}
我错过了什么吗?
【问题讨论】:
-
尝试将`waitEvent.Reset();`放在for循环中
waitEvent.WaitOne();之后 -
@Izikon 已经尝试过了..
-
这里问了一个类似的问题:stackoverflow.com/questions/45642333/…
标签: c# dotnetbrowser