Heim > Backend-Entwicklung > C++ > Wie vermeide ich das Sperren von Dateien beim Aktualisieren von PictureBox-Bildern?

Wie vermeide ich das Sperren von Dateien beim Aktualisieren von PictureBox-Bildern?

Susan Sarandon
Freigeben: 2025-01-13 22:40:46
Original
235 Leute haben es durchsucht

How to Avoid File Locking When Updating PictureBox Images?

Behebung von Dateisperrproblemen beim Aktualisieren von PictureBox-Bildern

Das Aktualisieren der Image-Eigenschaft einer PictureBox mit einer neuen Bitmap kann manchmal eine Ausnahme auslösen, wodurch die Bilddatei gesperrt bleibt. Dies liegt daran, dass Bitmap einen Verweis auf die Quelldatei behält.

Lösung: Effizientes Laden von Bildern ohne Dateisperren

Die Lösung besteht darin, das Bild zu laden, ohne eine Dateisperre zu erzeugen. Diese Methode ist hocheffizient:

<code class="language-csharp">public static Image FromFile(string path)
{
    byte[] bytes = File.ReadAllBytes(path);
    using (MemoryStream ms = new MemoryStream(bytes))
    {
        return Image.FromStream(ms);
    }
}</code>
Nach dem Login kopieren

Dieser Code liest das Bild in ein Byte-Array und streamt es dann in ein Image-Objekt, wodurch die Dateisperre umgangen wird. Das Bild kann dann sicher der PictureBox zugewiesen werden.

Leistungsbenchmark

Ein Leistungsvergleich mit einer Bitmap-Kopiermethode ergab, dass dieser Byte-Array-Ansatz erheblich schneller ist (ungefähr 0,26 ms pro Bild gegenüber 0,50 ms für die Kopiermethode).

Abrufen eines Bitmap-Objekts

Wenn Sie speziell ein Bitmap-Objekt benötigen, reicht eine geringfügige Änderung aus:

<code class="language-csharp">return (Bitmap)Image.FromStream(ms);</code>
Nach dem Login kopieren

Dadurch wird sichergestellt, dass das zurückgegebene Objekt vom Typ Bitmap ist.

Diese Methoden bieten eine zuverlässige und leistungsstarke Lösung zum Aktualisieren von PictureBox-Bildern, verhindern das Sperren von Dateien und verbessern die Anwendungseffizienz.

Das obige ist der detaillierte Inhalt vonWie vermeide ich das Sperren von Dateien beim Aktualisieren von PictureBox-Bildern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage