gpt4 book ai didi

c# - 为什么 Microsoft.Office.Interop.Excel.Application.Quit() 让后台进程继续运行?

转载 作者:可可西里 更新时间:2023-11-01 08:15:28 24 4
gpt4 key购买 nike

以下代码使 Microsoft Excel 后台进程继续运行,直到我的程序退出:

var excelApplication = new Application();
var workbooks = excelApplication.Workbooks;
var workbook = excelApplication.Workbooks.Open(file.FullName);

workbook.Close();
excelApplication.Workbooks.Close();
excelApplication.Quit();

Marshal.ReleaseComObject(workbook);
Marshal.ReleaseComObject(workbooks);
Marshal.ReleaseComObject(excelApplication);

为什么?我错过了什么?

最佳答案

知道了!

application.Workbooks != application.Workbooks

此属性不公开变量,它生成一个值。因此,每次我访问 Workbooks 属性时,我都会创建一个新的 COM 对象。

我修改了代码,一切正常。谢谢大家。

var excelApplication = new Application();
var workbooks = excelApplication.Workbooks;
var workbook = workbooks.Open(pathToExcelWorkbook); // Fixed

workbook.Close();
workbooks.Close();
excelApplication.Quit();

Marshal.ReleaseComObject(workbook);
Marshal.ReleaseComObject(workbooks);
Marshal.ReleaseComObject(excelApplication);

关于c# - 为什么 Microsoft.Office.Interop.Excel.Application.Quit() 让后台进程继续运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27930307/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com