在C#应用程序中进行持续的excel进程
>您已经实现了强大的发行折扣策略来管理COM对象,但是在应用程序关闭后,您的Excel过程仍保持活跃。这表明在您的C#应用程序中对COM对象的引用。
>一个普通的罪魁祸首是隐式引用com对象成员而没有明确的变量分配。 考虑使用对象的以下示例:Worksheets
<code class="language-csharp">excelApp.Worksheets.Open(...);</code>
com对象的隐藏引用,阻止Excel释放其资源。
Worksheets
>
该解决方案在于显式变量分配和随后的com对象的版本:
这种方法可以使您精确地控制对象的生命周期,从而适当处理。
<code class="language-csharp">Worksheets sheets = excelApp.Worksheets; Worksheet sheet = sheets.Open(...); // ... your code ... Marshal.ReleaseComObject(sheet); Marshal.ReleaseComObject(sheets);</code>
>至关重要的是,在与C#中的COM对象进行交互时,请记住此规则:避免使用两个点链接成员访问。这意味着从代码中避免:
始终选择上述说明的显式变量分配方法。
以上是为什么我的Excel流程在关闭C#应用程序后仍会持续存在,即使采用释放dispose-Collect等待策略?的详细内容。更多信息请关注PHP中文网其他相关文章!