※ 引述《kadouin (跑跑卡到陰)》之銘言:
: 我的程式會動態算出位置
: 將一個圖片動態的載入畫面上
: 大致的程式碼是像這樣
: Bitmap b=new Bitmap(@"c:\img.jpg");
: Random random=new Random();
: while (true)
: {
: Refresh();
^^^^^^^^^關鍵在於這一行,無窮loop,會造成MemoryLeak
: for (int i = 0; i < 10; i++)
: {
: x = random.Next(100);
: y = random.Next(100);
: g.DrawImage(b, x, y);
: }
: Thread.Sleep(1000);
: }
:
試試改成下列這樣
bool first=false;
private void OnPaint(PaintArgs e)
{
//第一次執行時清空所有垃圾
if(!first) {
first=true;
Refresh();//清空垃圾,並再次進入OnPaint();
return;
}
Bitmap b = new Bitmap(@"c:\img.jpg");
Random random=new Rndom();
for(...........)
{
........
........
........
}
Thread.Sleep(1000);
Refresh();//清空垃圾,並再次進入OnPaint();
}
--
我很可憐,前幾天出了場車禍,
對方一下車不清青紅皂白的就把我打了一頓,
我問他為什麼打我?他說因為我長的太帥,我很生氣!!
因為我覺得我長的一點都不出色...
我抓了個路人來幫我評評理,那路人也打了我一頓,ꘊ為他說我說謊..我招誰惹誰了我!!
※ 編輯: starlife672 來自: 125.230.196.215 (05/07 02:17)