はその後、bmp1
は適切PictureBox
によって処分されるか、私はbmp2
にImage
を変更するとbmp1
とそれのDispose
への参照を保持する必要がありますか?画像が別のビットマップに設定されたら、PictureBoxのビットマップはどうなりますか?私はいくつか<code>Bitmap bmp1</code>を持っており、この<code>bmp1</code>に<code>PictureBox.Image</code>を設定した場合はいつか、後で<code>Bitmap bmp2</code>に設定
2
A
答えて
4
PictureBox
は、画像を廃棄するかどうかを知ることはできません。アプリ内の他の場所で使用している可能性があります。したがって、それは明示的にDispose
ではありません。 PictureBox
が最後の参照を保持している場合は、ガベージコレクションの対象となり、確定処理の一部としてDispose
が呼び出されますが、そのときはガベージコレクタになります。その間、未だ提供されていないBitmap
は管理されていないリソースを消費しており、ソースファイルを変更できないようにストリームを開いている可能性が高いため、「いつでも」悪い習慣を守るようにします。
あなたはあなたに何PictureBox.Image
ポイントを変更する際にBitmap
で行われている知っている場合は、古いものを処分すると設定が完了し、右そこに余分なカップルの行を追加します。
Image tmp = myPictureBox.Image;
myPictureBox.Image = newImage;
if (tmp != null)
{
tmp.Dispose();
}
この私が疑ったものです、ありがとうございます。 – KDecker