现在的位置: 首页 > 综合 > 正文

当循还读取excel文件时,关闭应用程序出错处理办法

2013年02月23日 ⁄ 综合 ⁄ 共 814字 ⁄ 字号 评论关闭
        当从excel中循还读取数据(window form)。当这读取过程未完成时,关闭窗口,导致程序抛出异常:Additional information: Exception from HRESULT: 0x800A01A8,有的时候是: RPC服务器不可用,而且调试时,VS不能自动中断,循还代码还会继续执行。
        经过摸索,我把循还代码放到一个线程里执行,并把线程,excel对象提升为窗体级别,并注册Closing事件。 代码如下:

private void frmMain_Closing(object sender, CancelEventArgs e)
        
{
            
if( thread != null )
           
{
                thread.Abort( );
                thread.Join( );
            }


            
ifthis.excel != null )
          
{
                
this.excel.Dispose( );
            }

        }

      excel重新封装了。相应的方法如下。

public void Dispose()
        
{
            Dispose(
true);
            GC.SuppressFinalize(
this);
        }

        

        
private void Dispose(bool disposing)
        
{
            
if(disposing)
            
{
                
this.excel.Quit( );
            }

        }

      目前运行良好~

抱歉!评论已关闭.