在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中文網其他相關文章!