欢迎光临
我们一直在努力

.net中清除EXCEL进程最有效的方法-.NET教程,.NET Framework

建站超值云服务器,限时71元/月

 最近用c#写winform,将excel文件中的数据写入数据库中,将datagrid中的数据导出为excel格式。最后发现excel内存泄漏,在应用程序不退出的情况下,总是有一个excel进程不能清除!在网上找了许多答案,都是无用的答案!什么不管三七二十一杀excel进程啦,不是最有效的方法!其实最有效的方法就是下面这个方法:

1、对excel操作做成一个函数,然后调用此函数。在函数中调用gc.collect();无用,因为gc不回收调用自己的那一段代码块!
2、在函数的下面调用gc.collect();语句。你会发现excel进程没有了!
例如:
private void import() {
     excel.application myexcel  = new excel.application();
     myexcel.workbooks.add(openfiledialog1.filename);
    //……..
   //读取excel文件,导入到数据库.
   //清除excel垃圾进程
   myexcel.workbooks.close();
   myexcel.quit();
   system.runtime.interopservices.marshal.releasecomobject(myexcel);
   myexcel = null;
}
 private void excelimport() {
   import();
   gc.collect();
 }
//以下按button1按钮,使用多线程读取excel文件,导入到数据库.
private void button1_click(object sender, system.eventargs e) {
    if(openfiledialog1.showdialog() == dialogresult.ok) {
     system.threading.thread t=new system.threading.thread(new system.threading.threadstart(excelimport));
     t.start();
    }
  }

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » .net中清除EXCEL进程最有效的方法-.NET教程,.NET Framework
分享到: 更多 (0)