【发布时间】:2015-10-16 18:45:48
【问题描述】:
在我使用 WebBrowser 的静态方法中。我订阅了它的导航事件一个匿名方法。我可以指示我的方法仅在 WebBroswer 触发导航事件并且我的匿名处理程序完成后返回吗?
using forms = System.Windows.Forms;
namespace ProxyProvider
{
public delegate string finished();
public static class ProxyProvider
{
public static string GetProxy()
{
string returnValue = "";
finished meFinished = () =>
{
return returnValue;
};
forms.WebBrowser browser = new forms.WebBrowser();
try
{
browser.Navigated += (s, e) =>
{
if (browser.ReadyState == forms.WebBrowserReadyState.Loading) //waiting for browser finishes loading page
return;
returnValue = ParseHtml(browser.DocumentText);
meFinished(); //I want this function to return only here. After it finishes parsing
};
browser.Navigate("http://example.com/proxy-list/");
return returnValue; // don't want to return it here
}
catch (Exception e)
{
forms.MessageBox.Show("ProxyProvider.GetProxy(): " + e.Message);
return "";
}
}
}
}
【问题讨论】:
标签: c#