Rumah >pembangunan bahagian belakang >C++ >Kenapa proses Excel saya berterusan selepas menutup aplikasi C# saya, walaupun dengan strategi pelepasan-collect-dail?
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>garis yang seolah -olah tidak berbahaya ini mencipta rujukan tersembunyi kepada objek
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>Pendekatan ini memberi anda kawalan tepat ke atas kitaran hayat objek, membolehkan pelupusan yang betul.
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>Sentiasa memilih kaedah tugasan pembolehubah yang jelas yang ditunjukkan di atas.
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!