我有一个c#应用程序,可以创建一个简单的excel文件。这工作很好。但是我想确保创建的excel应用程序无论发生什么都关闭,所以我不会在后台运行大量的Excel进程。
下面是我正在使用的一些代码。我想我的问题是在Dispose方法中有没有办法测试XlApp是否仍处于打开状态,如果是,请确保应用程序已退出。
它就像下面的几行一样简单吗?
if (XlApp != null)
{
XlApp.Quit();
releaseObject(XlApp);
}
我的代码示例
public class ExcelMain : IDisposable
{
public void MadeUpMethod()
{
// do some stuff here
XlApp.Quit(); // worried that if the line is not reached will the excel application be closed
}
public void Dispose()
{
Dispose(true);
}
protected virtual void Dispose(bool disposing)
{
if (disposing)
{
if (Rng != null) releaseObject(Rng);
if (XlWorksheet != null) releaseObject(XlWorksheet);
if (XlSheets != null) releaseObject(XlSheets);
if (XlWorksheets != null) releaseObject(XlWorksheets);
if (XlWorkbook != null) releaseObject(XlWorkbook);
if (ActiveWindow != null) releaseObject(ActiveWindow);
if (XlApp != null) releaseObject(XlApp);
}
}
private static void releaseObject(object obj)
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
}
}