페이지를로드하는 웹 브라우저 기다립니다C#을 WPF : 나는</p> <p>내가 웹 브라우저가 성공적 여부를 여기 페이지를로드하는 코드입니다 있는지 확인하는 방법을 검색 WebBrowser 컨트롤을 추가 할 WPF 프로그램이
private async Task PageLoad(int TimeOut)
{
TaskCompletionSource<bool> PageLoaded = null;
PageLoaded = new TaskCompletionSource<bool>();
int TimeElapsed = 0;
webBrowser.LoadCompleted += (s, e) =>
{
if (webBrowser.ReadyState != webBrowser.Complete) return;
if (webBrowser.Task.IsCompleted) return;
PageLoaded.SetResult(true);
};
while (PageLoaded.Task.Status != TaskStatus.RanToCompletion)
{
//interval of 10 ms worked good for me
await Task.Delay(10);
TimeElapsed++;
if (TimeElapsed >= TimeOut * 100)
{
//This prevents your method or thread from waiting forever
PageLoaded.TrySetResult(true);
}
}
}
하지만 왜 wpf에서는 작동하지 않습니다. 어떻게 변환합니까?
나는 이것을 확인하고 ReadyState
Complete
및 Task.IsCompleted
에는 wpf와 같은 속성이 없습니다. wpf의 코드는 무엇입니까?
[ASP.NET 용 WebBrowser 클래스의 Async/Await 구현] 가능한 복제본 (http://stackoverflow.com/questions/8610197/async-await-implementation-of-webbrowser-class-for-net) –
으로 확인 웹 페이지가로드됩니다 모호한 것입니다. 웹 브라우저 컨트롤과 IE 모두 document.complete 이벤트에 연결할 수 있습니다. 물론 문제는 많은 자바 스크립트 프레임 워크가 문서로드가 완료된 후에 만로드를 시작한다는 것입니다. 따라서 document.complete 이벤트를 실행할 수는 있지만 웹 페이지를 더 많이 추가하는 스크립트가 계속 실행될 수 있습니다. –