当从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( );
            }

        }
      目前运行良好~
posted on 2006-10-24 09:06  分享 共赢  阅读(1124)  评论(0编辑  收藏  举报