아래 코드와 같이 webbrowser에서 탐색 한 후 html을 얻는 방법. 이 DLL 라이브러리는 다른 프로젝트에서 사용할 수 있으며 winforms가 아닙니다. navigate를 호출 한 후 기다리지 않습니다.webbrowser.navigate에 동 기적으로 액세스하는 방법
public List<Category> Categories;
public WebBrowser Browser;
public List<Category> ListAllCategories()
{
Browser.DocumentCompleted += ReadAllCategories;
Browser.Navigate(CoursesLink);
//want to wait here until categories are built in the ReadAllCategories method without wasting CPU cycles
return Categories;
}
void ReadAllCategories(object sender, WebBrowserDocumentCompletedEventArgs e)
{
WebBrowser browser = sender as WebBrowser;
switch (browser.ReadyState)
{
case WebBrowserReadyState.Complete:
if (browser.Document != null)
{
//buildingListofCategories
}
break;
case WebBrowserReadyState.Interactive:
break;
case WebBrowserReadyState.Loaded:
break;
case WebBrowserReadyState.Loading:
break;
case WebBrowserReadyState.Uninitialized:
break;
default:
break;
}
browser.DocumentCompleted -= ReadAllCategories;
}
'async'를 사용하여 자신 만의'작업 '을 만들어야합니다. – SLaks