完全释放Excel进程的资源
2009-08-05 10:20
357 查看
一个彻底释放Excel进程的方法。
/// <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(m_objFont);
ReleaseObj(m_objRange);
ReleaseObj(m_objSheet);
ReleaseObj(m_objSheets);
ReleaseObj(m_objBook);
ReleaseObj(m_objBooks);
ReleaseObj(m_objExcel);
int generation = GC.GetGeneration(m_objExcel);
GC.Collect(generation);
m_oMissing = null;
}
}
/// <summary>
/// 释放对象,内部调用
/// </summary>
/// <param name="o"></param>
private void ReleaseObj(object obj)
{
if (obj != null)
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
obj = null;
}
}
/// <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(m_objFont);
ReleaseObj(m_objRange);
ReleaseObj(m_objSheet);
ReleaseObj(m_objSheets);
ReleaseObj(m_objBook);
ReleaseObj(m_objBooks);
ReleaseObj(m_objExcel);
int generation = GC.GetGeneration(m_objExcel);
GC.Collect(generation);
m_oMissing = null;
}
}
/// <summary>
/// 释放对象,内部调用
/// </summary>
/// <param name="o"></param>
private void ReleaseObj(object obj)
{
if (obj != null)
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
obj = null;
}
}
相关文章推荐
- Silverlight 操作Excel 中的进程资源释放问题(续)
- Com Excel组件释放资源关闭进程总结
- ASP.NET中调用EXCEL后,如何完全释放Excel资源?
- 如何完全杀掉带锁的进程并释放资源
- C#导出Excel后关闭进程(EXCEL.EXE)释放资源的解决方案
- Silverlight 操作Excel 中的进程资源释放问题
- C#导出Excel后关闭进程(EXCEL.EXE)释放资源的解决方案
- C#导出Excel后关闭进程(EXCEL.EXE)释放资源的解决方案
- C#导出Excel后关闭进程(EXCEL.EXE)释放资源的解决方案
- VB.Net程序设计:Excel开发释放资源问题(非杀死Excel进程)
- C#sql查询导出为excel文件,并最终释放excel资源。
- 2008年9月小记(数字辅助表,Linq随机序列,Row_number分页,查看w3wp.exe进程,chkdsk,IIS7错误跳转,JS随机数,永久重定向,占用资源的释放,ReaderWriterLockSlim,Session过期时间)
- 调用Excel导出文件的两种方式,主要解决了资源释放的问题。
- (转)AudioRecord 释放资源错误(进程意外中断)
- Linux下调用fork或system启动子进程的信号和资源释放相关问题
- linux进程退出,线程资源用pthread_detach释放
- Linux下调用fork或system启动子进程的信号和资源释放相关问题
- Android 释放资源和进程的优先级顺序
- ASP中建立Excel对象,Excel进程总是无法释放(看了网上的很多帖子,两种方法,但是都不是很好)
- Linux下调用fork或system启动子进程的信号和资源释放相关问题