一个安全彻底关闭实例Excel.Application后产生的进程方法

本文详细介绍了一种在使用Excel对象后,彻底释放其占用内存的方法,包括断开所有引用和调用垃圾回收,确保应用程序资源得到合理管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在CSDN上看到长江支流发表这个主题,真的是很感谢!但有此细节如何没有做好还是不能释放资源,在此补充一下
实现代码
ContractedBlock.gifExpandedBlockStart.gifCode
         /// <summary>
        
/// 释放Excel所占的内存。
        
/// </summary>
        public void ReleaseComObjectExcel()
        {
            
if (m_objExcel != null)
            {
                m_objExcel.UserControl 
= false;

                
//m_objExcel.DisplayAlerts = false;
                
//m_objExcel.Quit();

                
//m_objBooks.Close();

                ReleaseObj(
ref m_objFont);
                ReleaseObj(
ref m_objRange);
                ReleaseObj(
ref m_objSheet);
                ReleaseObj(
ref m_objSheets);
                ReleaseObj(
ref m_objBook);
                ReleaseObj(
ref m_objBooks);
                
int generation = GC.GetGeneration(m_objExcel);
                ReleaseObj(ref m_objExcel);
                GC.Collect(generation);
                m_oMissing 
= null;
            }
        }

        
/// <summary>
        
/// 释放对象,内部调用
        
/// </summary>
        
/// <param name="o"></param>
        private void ReleaseObj(ref object obj)
        {
            
if (obj != null)
            {
                System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
                obj 
= null;
            }
        }

最主要记住还存在引用关系的变量清除为空,这个切记

转载于:https://www.cnblogs.com/Yjianyong/archive/2009/08/06/1540685.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值