トップページ > プログラム > 2016年06月26日 > 2tSx7hd9

書き込み順位&時間帯一覧

31 位/237 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000201000003



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
ふらっと C#,C♯,C#(初心者用) Part121 [無断転載禁止]©2ch.net

書き込みレス一覧

ふらっと C#,C♯,C#(初心者用) Part121 [無断転載禁止]©2ch.net
515 :デフォルトの名無しさん[sage]:2016/06/26(日) 16:06:01.20 ID:2tSx7hd9
>>514
・開放したいタイミングは別の画像を差し替える時
Bitmap bmp=new Bitmap(@file);
PictureBox.Image=bmp;
bmp=new Bitmap(@newfile);//Disposeせずにそのまま使う
PictureBox.Image=bmp;
・Pictureboxを使うのを中断したいとき
PictureBox.Image.Dispose();

それぞれGC.Collect();

・プログラム終了時
なにもしなくていい
ふらっと C#,C♯,C#(初心者用) Part121 [無断転載禁止]©2ch.net
517 :デフォルトの名無しさん[sage]:2016/06/26(日) 16:29:10.99 ID:2tSx7hd9
>>516
ファイルのロックだけならnew Bitmap(@file)でも回避できるけど
>>514のコードと目的見ないとこれ以上はわからんな
ふらっと C#,C♯,C#(初心者用) Part121 [無断転載禁止]©2ch.net
535 :デフォルトの名無しさん[sage]:2016/06/26(日) 18:33:17.04 ID:2tSx7hd9
>>522
画像をどこから持ってくるかわからないからああいった書き方にしたんだけど
PictureBoxに直接ファイルを読み込んでいいのなら
PictureBox.Image=new Bitmap(@file);//読込み。ファイルはロックされない
//PictureBox表示中
PictureBox.Image.Dispose();//PictureBox終了

Bitmap bmpをそのまま使うのなら
PictureBox.Image=bmp;
//PictureBox表示中
PictureBox.Image.Dispose();//PictureBox終了
if (bmp!=null) bmp.Dispose();//bmpが残っていたら破棄
こう書けば確実にDisposeできてエラーにもならない
または
PictureBox.Image=new Bitmap(bmp);
bmp.Dispose();//コピーされたので不要
//PictureBox表示中
PictureBox.Image.Dispose();

それぞれDispose後にPictureBox.Imageとbmpにnull入れてGC.Collect();
したら確実にメモリ消費が減るのは試した見たことがある
後は自分でやってみて様子見ながら改良して


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。