不进行强制转换时出现InvalidCastException

时间:2014-04-24 13:27:47

标签: c# winforms .net

我使用winforms Webbrowser控件加载网页,需要等待页面加载。
所以我有一个while循环来检查ReadyState属性,但它会在比较的行上不断抛出InvalidCastException

我不明白为什么我会看到这个错误,因为我没有进行任何转换,并且甚至不需要进行转换,因为该变量与枚举值的类型相同。

有人可以对此有所了解吗?

以下代码:

while (wb.ReadyState != WebBrowserReadyState.Complete)
{
    Thread.Sleep(2500);
}

编辑:

Screenshot of exception window

2 个答案:

答案 0 :(得分:5)

为什么不订阅DocumentCompleted事件而不是使用循环?

private void wb_DocumentCompleted(object sender, EventArgs e)
{
    //do stuff after the page has loaded
}

答案 1 :(得分:1)

发现问题,是从另一个线程调用readystate属性。本来很高兴被告知这是问题,因为我和其他事情一样,而不是一个完全不相关的错误信息,但是很好。