我使用winforms Webbrowser
控件加载网页,需要等待页面加载。
所以我有一个while循环来检查ReadyState
属性,但它会在比较的行上不断抛出InvalidCastException
。
我不明白为什么我会看到这个错误,因为我没有进行任何转换,并且甚至不需要进行转换,因为该变量与枚举值的类型相同。
有人可以对此有所了解吗?
以下代码:
while (wb.ReadyState != WebBrowserReadyState.Complete)
{
Thread.Sleep(2500);
}
编辑:
答案 0 :(得分:5)
为什么不订阅DocumentCompleted事件而不是使用循环?
private void wb_DocumentCompleted(object sender, EventArgs e)
{
//do stuff after the page has loaded
}
答案 1 :(得分:1)
发现问题,是从另一个线程调用readystate属性。本来很高兴被告知这是问题,因为我和其他事情一样,而不是一个完全不相关的错误信息,但是很好。