【发布时间】:2015-07-15 21:39:10
【问题描述】:
我不得不在 WPF 应用程序(.NET v4.0)中使用WebBrowser 控件连续加载几个页面,最简单的暂停方法是使用while 循环并检查IsLoaded 属性。我想知道是否有更好的东西。以下SO 响应建议使用AutoResetEvent,但它似乎不起作用,即LoadCompleted 事件未触发且AutoResetEvent 从未设置。有什么我错过的吗
private Uri firstURI = new Uri("http://google.com", UriKind.RelativeOrAbsolute);
private Uri secondURI = new Uri("http://duckduckgo.com/", UriKind.RelativeOrAbsolute);
AutoResetEvent logEvent = new AutoResetEvent(false);
public MainWindow()
{
InitializeComponent();
webBrowser.Loaded += webBrowser_Loaded;
webBrowser.LoadCompleted += webBrowser_LoadCompleted;
webBrowser.Navigate(firstURI);
while(webBrowser.IsLoaded()){}; //logEvent.WaitOne();
webBrowser.Navigate(secondURI);
while(webBrowser.IsLoaded()){}; //logEvent.WaitOne();
// do something
}
void webBrowser_Loaded(object sender, RoutedEventArgs e)
{
logEvent.Set();
}
void webBrowser_LoadCompleted(object sender, NavigationEventArgs e)
{
logEvent.Set();
}
【问题讨论】:
标签: c# wpf c#-4.0 webbrowser-control