当前位置: 代码迷 >> C# >> C# winform 项目中,在封锁form窗体时导致WebBrowser1控件在执行webBrowser1.Navigate方法时报错
  详细解决方案

C# winform 项目中,在封锁form窗体时导致WebBrowser1控件在执行webBrowser1.Navigate方法时报错

热度:114   发布时间:2016-05-05 04:29:04.0
C# winform 项目中,在关闭form窗体时导致WebBrowser1控件在执行webBrowser1.Navigate方法时报错
在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关了,试试
  相关解决方案