C#彻底释放EXCEL

收集了一下
大概就这四种
 
1.//垃圾收集

        private void GCCollect()

        {

            GC.Collect();

            GC.WaitForPendingFinalizers();

            GC.Collect();

            GC.WaitForPendingFinalizers();

        }
        2.//释放资源

        private void NAR(object o)

        {

            try

            {

                System.Runtime.InteropServices.Marshal.ReleaseComObject(o);

            }

            catch { }

            finally

            {

                o = null;

            }

        }
        3.//杀进程

        private void killExcel()

        {

            Process[] myprcs = Process.GetProcessesByName("Excel");

            foreach (Process myprc in myprcs)

                myprc.Close();

        }
        4.退出时释放
        private void Form1_FormClosed(object sender, FormClosedEventArgs e)

        {

            this.Dispose();

            this.Close();

        }
从我自己使用的经验来看
前2种都没作用
第三种是万能的,但是不安全
想做得好点的要取到process ID
关这个ID的excel
我这个没做
最好的就是第4种
this.Dispose();(这句)
即使你worksheet没close
也没有worksheet=null
excel照样消失
当然我的环境是
windows server 2008
visual studio 2008
也许前两种方法在一定条件下才适用
没有深入研究
大家继续
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值