让释放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了。

真高兴。

 不晓得大家有没有其他好方法,来解决这个问题。请指教下。

posted @ 2010-07-23 13:48  smile*_^  阅读(370)  评论(3编辑  收藏  举报