让释放excel进程的小tips
最近用excel.dll导出excel那个小程序收到大家认可,感觉使用很方便,大家都反复使用,单位时间产生大量的excel文件,不知道为什么使用频率增多后,总有excel的进程停不掉,导致生成100份excel报表总有1-2份没有保存。任务管理器一抹多excle的进程。
网上找的
诸如: System.Runtime.InteropServices.Marshal.ReleaseComObject(MyRange);
System.Runtime.InteropServices.Marshal.ReleaseComObject(MyBook);
System.Runtime.InteropServices.Marshal.ReleaseComObject(MyExcel);
还有这些 GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
GC.WaitForPendingFinalizers();
统统不管用。
最后我想是不是用多线程套用模板生成表,每份之间时间太短,excel来不及释放,又被调用造成。最后添了句
System.Threading.Thread.Sleep(100);
一下子就ok了。
真高兴。
不晓得大家有没有其他好方法,来解决这个问题。请指教下。