避免使用.NET Interop Interop
>避免內存洩漏>使用.NET等excel'sApplicationClass
等COM Interop對象,需要仔細處理以防止資源洩漏和內存問題。 處置不當會使流程運行並消耗不必要的內存。
>問題:不完整處置
>簡單地調用System.Runtime.InteropServices.Marshal.ReleaseComObject
可能不足以完全釋放Excel Interop對象。 這個問題通常源於我們與這些對象的互動方式。
>“避免連續的點”最佳實踐
> 使用連續點(例如,)鏈接多個成員訪問會導致問題。 C#編譯器會創建一個託管包裝器,如果未明確發布,則可以保留對基礎com對象的引用。 excelApp.Worksheets.Open(...)
解決方案:顯式變量分配
推薦的方法是在進一步交互之前分配每個com對象訪問單獨變量的結果。 而不是直接調用,請先分配excelApp.Worksheets.Open(...)
:excelApp.Worksheets
>
Worksheets sheets = excelApp.Worksheets; // Assign to a variable Worksheet sheet = sheets.Open(...); // ... your code ... Marshal.ReleaseComObject(sheets); Marshal.ReleaseComObject(sheet);
>。
Marshal.ReleaseComObject
>
下面的修訂的代碼段展示了正確的處置技術:
>
以上是如何在.NET中正確處理Excel Interop對像以防止內存洩漏?的詳細內容。更多資訊請關注PHP中文網其他相關文章!