Mengelakkan proses excel.exe yang berterusan: Amalan terbaik untuk C# Excel Interop
Bekerja dengan objek Interop Excel dalam C#, terutamanya, memerlukan pengurusan sumber yang teliti untuk mencegah proses ApplicationClass
dari berlarutan selepas permohonan anda selesai. Walaupun dengan kod pembersihan, proses itu mungkin tetap aktif, menunjukkan pengendalian objek yang tidak betul. Excel.exe
contohnya, bukannya:
<code class="language-csharp">excelApp.Worksheets.Open(...); Marshal.ReleaseComObject(sheet);</code>
<code class="language-csharp">Worksheets sheets = excelApp.Worksheets; Worksheet sheet = sheets.Open(...); Marshal.ReleaseComObject(sheets); Marshal.ReleaseComObject(sheet);</code>
ingat untuk memasukkan pembersihan menyeluruh dalam blok
: finally
<code class="language-csharp">while (Marshal.ReleaseComObject(excelSheet) != 0) { } excelSheet = null; GC.Collect(); GC.WaitForPendingFinalizers();</code>
Atas ialah kandungan terperinci Bagaimanakah saya dapat memastikan pelupusan objek Interop Excel yang betul dalam C# untuk mengelakkan proses Excel.exe daripada masih aktif?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!