Penyelesaian masalah proses excel berterusan dalam aplikasi C#
Anda telah melaksanakan strategi pelepasan-collect-dail-diskose yang mantap untuk menguruskan objek COM, namun proses Excel anda tetap aktif selepas penutupan permohonan. Ini menunjukkan rujukan kepada objek COM dalam aplikasi C# anda.Penyebab biasa secara tersirat merujuk ahli objek COM tanpa tugasan pembolehubah yang jelas. Pertimbangkan contoh berikut menggunakan objek
: Worksheets
<code class="language-csharp">excelApp.Worksheets.Open(...);</code>
com, menghalang Excel daripada melepaskan sumbernya. Worksheets
Penyelesaian: Penugasan dan pelepasan pembolehubah yang jelas
Penyelesaiannya terletak pada tugasan pembolehubah yang jelas dan pelepasan objek COM yang berikutnya:
<code class="language-csharp">Worksheets sheets = excelApp.Worksheets; Worksheet sheet = sheets.Open(...); // ... your code ... Marshal.ReleaseComObject(sheet); Marshal.ReleaseComObject(sheets);</code>
Amalan Terbaik Kunci: Elakkan Akses Objek COM Chained
dengan penuh semangat, ingat peraturan ini apabila berinteraksi dengan objek COM dalam C#:Elakkan mengakses akses ahli menggunakan dua titik. Ini bermakna menahan diri dari kod seperti:
<code class="language-csharp">excelApp.Worksheets.Open(...);</code>
Dengan mematuhi amalan terbaik ini, anda akan menguruskan jangka hayat objek COM dengan berkesan, memastikan proses Excel ditamatkan dengan bersih apabila penutupan permohonan.
Atas ialah kandungan terperinci Kenapa proses Excel saya berterusan selepas menutup aplikasi C# saya, walaupun dengan strategi pelepasan-collect-dail?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!