Selesaikan pengecualian kunci fail dalam tugasan imej PictureBox
Apabila memberikan imej kepada PictureBox pada masa jalanan, pembangun mungkin menghadapi ralat yang menyatakan bahawa fail dikunci oleh proses lain. Ini berlaku apabila fail sudah digunakan oleh objek Imej atau Bitmap. Untuk menyelesaikan masalah ini, terdapat dua cara utama untuk membuka kunci fail.
Gunakan strim memori
Pendekatan yang disyorkan ialah memuatkan data imej ke dalam strim memori dan mencipta objek Imej daripada strim. Kaedah ini melepaskan kunci fail dan membenarkan pemprosesan imej selanjutnya:
<code class="language-c#">public static Image FromFile(string path) { byte[] bytes = File.ReadAllBytes(path); using (MemoryStream ms = new MemoryStream(bytes)) { return Image.FromStream(ms); } }</code>
Salin daripada Bitmap
Pendekatan lain ialah membuat salinan objek Bitmap yang mewakili imej dan menetapkannya kepada PictureBox. Kaedah ini melibatkan penggunaan memori tambahan tetapi mengekalkan kunci fail asal:
<code class="language-c#">Image imgCopy = new Bitmap(filePath); pbAvatar.Image = imgCopy;</code>
Ujian prestasi menunjukkan bahawa memuatkan imej daripada Bytes adalah lebih pantas daripada menyalin daripada Bitmap. Walau bagaimanapun, jika anda memerlukan objek Bitmap secara khusus, anda boleh menggunakan kaedah salin.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Pengecualian Kunci Fail Apabila Menetapkan Imej kepada PictureBoxes?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!