프로세스가 특정 순서 여야하기 때문에 WebBrowser.Navigate()가 같은 스레드에서 실행되는 것을 방지해야합니다.WebBrowser가 동일한 스레드에서 실행됩니다.
async/await 구현을 사용하여 Async/Await implementation of WebBrowser class for .NET이 왔지만 지원하지 않는 .net 3.5를 사용해야합니다.
누구나 다른 방법을 알고 계십니까?
프로세스가 특정 순서 여야하기 때문에 WebBrowser.Navigate()가 같은 스레드에서 실행되는 것을 방지해야합니다.WebBrowser가 동일한 스레드에서 실행됩니다.
async/await 구현을 사용하여 Async/Await implementation of WebBrowser class for .NET이 왔지만 지원하지 않는 .net 3.5를 사용해야합니다.
누구나 다른 방법을 알고 계십니까?
나는 기본 폼에 플래그를 설정 끝났다. 그런 다음 플래그가 재설정 될 때까지 thread.sleep이 있습니다.
는 지금까지 내가 당신의 요구 사항을 이해, 당신은 다음과 같은 방법으로 WebBrowser
구성 요소의 DocumentCompleted
이벤트를 사용할 수 있습니다
webBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(Loaded);
webBrowser.Navigate(...);
...
void Loaded(object sender, WebBrowserDocumentCompletedEventArgs e)
{
// do stuff that needs to be run after the page is loaded
}
동일한 스레드에서 실행되지 않도록 할 수는 없지만 WebBrowser는 단일 스레드 COM 개체입니다. async/await의 간단한 대안은 상태 시스템입니다. 또는 [여기에 표시] (http://stackoverflow.com/a/4271581/17034)와 같이 별도의 스레드에서 모든 것을 실행하십시오. –
'async' /'await'을 사용할 수 없다면 아마도'IEnumerable' /'yield'를 사용할 수 있습니다 : http://stackoverflow.com/a/22296644/1768303 – Noseratio