在C# winform 项目中,在关闭form窗体时导致WebBrowser1控件在执行webBrowser1.Navigate方法时报错,
报错提示如下:
本机框架位于调用堆栈顶部,因此无法计算表达式的值。“System.ExecutionEngineException”类型的未经处理的异常出现在 System.Windows.Forms.dll 中。
请帮忙看看代码这么修改下,谢谢!
代码如下:
System.Threading.Timer timer;
private void FrmAnalysis_Load(object sender, EventArgs e)
{
doWork();
timer = new System.Threading.Timer(MyTimerCallback, null, 0, 1000);
}
void MyTimerCallback(object o)
{
try
{
//防止在窗口句柄初始化之前就走到下面的代码
if (this.IsHandleCreated == true)
{
doWork();
}
}
catch
{
}
}
void doWork()
{
try
{
if (index >= report_listSysmodule.Count)
{
index = 0;
i = 1;
}
else if (index < 0)
{
index = report_listSysmodule.Count - 1;
}
string reporturl = mod.ReportUrl(index, report_listSysmodule);
if (webBrowser1 != null && !webBrowser1.IsDisposed)
{
webBrowser1.Navigate(reporturl); //在关闭form窗体时,代码执行到这边,报上面的错误;
}
index++;
Module1.value = index;
}
catch (Exception ex)
{
MessageBox.Show("FrmAnalysis====" + ex.Message);
}
}
------解决思路----------------------
把timer关了,试试