在updatenetCallback方法中调用
WebBrowser.Document.InvokeScript 的方法时,出现异常
原因,是因为用timer调用 时,出现了跨线程的调用,所以才会出现这个问题,那么,就用委托解决
在updatenetCallback写成委托形式
//定时更新界面
/// <summary>
/// 定义一个委托,用于 调用js。
/// </summary>
/// <param name="count"></param>
private delegate void updateProgress(object obj);//代理
private void updatenetCallback(object obj)
{
if (this.InvokeRequired)
{
updateProgress setPos = new updateProgress(updatenetCallback);
this.Invoke(setPos, new object[] { obj });
}
else
{
try
{
//这里去掉了些代码
//调用js更新到界面
Object[] objArray = new Object[5];
objArray[0] = dr["net"].ToString();
objArray[1] = dr["fzr"].ToString();
objArray[2] = dr["phone"].ToString();
objArray[3] = dr["currcount"].ToString();
objArray[4] = dr["percount"].ToString();
webBrowser1.Document.InvokeScript("updatecount", objArray);
}
}
catch (Exception ex)
{
}
}
}
这样就可以了,