ホームページ > バックエンド開発 > C++ > PictureBox 画像を更新するときにファイルのロックを回避するにはどうすればよいですか?

PictureBox 画像を更新するときにファイルのロックを回避するにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-13 22:40:46
オリジナル
238 人が閲覧しました

How to Avoid File Locking When Updating PictureBox Images?

PictureBox 画像更新時のファイル ロックの問題に対処する

PictureBox の Image プロパティを新しいビットマップで更新すると、例外がトリガーされ、画像ファイルがロックされたままになる場合があります。これは、ビットマップがソース ファイルへの参照を保持しているためです。

解決策: ファイルをロックせずに効率的に画像をロードする

この解決策には、ファイル ロックを作成せずに画像をロードすることが含まれます。 この方法は非常に効率的です:

<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>
ログイン後にコピー

このコードは、画像をバイト配列に読み取り、それを Image オブジェクトにストリーミングして、ファイル ロックを回避します。 これで、画像を PictureBox に安全に割り当てることができます。

パフォーマンスベンチマーク

ビットマップ コピー方法とパフォーマンスを比較したところ、このバイト配列アプローチはかなり高速であることがわかりました (画像あたり約 0.26 ミリ秒、コピー方法では 0.50 ミリ秒)。

ビットマップ オブジェクトの取得

特に Bitmap オブジェクトが必要な場合は、わずかな変更で十分です。

<code class="language-csharp">return (Bitmap)Image.FromStream(ms);</code>
ログイン後にコピー

これにより、返されるオブジェクトのタイプが Bitmap であることが保証されます。

これらのメソッドは、PictureBox 画像を更新し、ファイルのロックを防ぎ、アプリケーションの効率を向上させる、信頼性の高いパフォーマンスの高いソリューションを提供します。

以上がPictureBox 画像を更新するときにファイルのロックを回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート