c# - Lack of Memory for picturebox -



c# - Lack of Memory for picturebox -

i create mini games work image box switch image. using switch. using max 30 images app.

definitions:

class unikatnihodnoty { public static list<button> buttonlist = new list<button>(); public static list<string> uhodnuteobrazky = new list<string>(); public static bool security = false; public static string pocetpokusu; public static string casnaobrazky; public static string casnatah; public static string bodykvitestvi; }

this script loading image files:

class nactenisouboru { string obrazky; string zadnikarta; string zadnistrana; public string hledanyobrazek; public list<string> obrazkylist = new list<string>(); public list<string> obrazkylistcontrol = new list<string>(); public nactenisouboru() { // cesty k souborům var currentdirectory = directory.getcurrentdirectory(); obrazky = currentdirectory + @"\vse\"; zadnistrana = currentdirectory + @"\zadnistrana\"; // základní hodnota zadnikarta = ""; } public void nacteniobrazku() { var listoffiles = new list<string>(); string[] fileentries = directory.getfiles(obrazky); foreach (string filename in fileentries) listoffiles.add(filename); random random = new random(); (int = 0; obrazkylist.count < 15; i++) { int index = random.next(0, listoffiles.count - 1); if (!obrazkylist.contains(listoffiles[index])) { obrazkylist.add(listoffiles[index]); obrazkylistcontrol.add(listoffiles[index]); } } } public void zobrazeniobrazku() { int = 0; foreach (button btn in unikatnihodnoty.buttonlist) { if (btn.backgroundimage != null) btn.backgroundimage.dispose(); btn.backgroundimage = image.fromfile(obrazkylist[i++]); } } public void nactenihledanehoobrazku(picturebox picture) { random random = new random(); foreach (string obrazky in unikatnihodnoty.uhodnuteobrazky) obrazkylistcontrol.remove(obrazky); int index = random.next(0, obrazkylistcontrol.count - 1); hledanyobrazek = obrazkylistcontrol[index]; if (picture.backgroundimage != null) picture.backgroundimage.dispose(); picture.backgroundimage = image.fromfile(obrazkylistcontrol[index]); } public void nactenizadnistrany() { string[] fileentries = directory.getfiles(zadnistrana); foreach (string filename in fileentries) zadnikarta = filename; foreach (button btn in unikatnihodnoty.buttonlist) { if (btn.backgroundimage != null) btn.backgroundimage.dispose(); btn.text = ""; btn.backgroundimage = image.fromfile(zadnikarta); } } }

can help me how can clean lack of memory after every switch images because phone call fuction every 30s.

this script switch images:

private void obrazek_click(object sender, eventargs e) { button btn = new button(); btn = (button)sender; timetah.enabled = false; switch (btn.name) { case "picture_0_0": if (btn.backgroundimage != null) btn.backgroundimage.dispose(); btn.backgroundimage = image.fromfile(soubor.obrazkylist[0]); if (soubor.obrazkylist[0] == soubor.hledanyobrazek) { unikatnihodnoty.uhodnuteobrazky.add(soubor.obrazkylist[0]); uspechnaobrazku(sender, e); } else neuspechnaobrazku(sender, e); break; case "picture_0_1": if (btn.backgroundimage != null) btn.backgroundimage.dispose(); btn.backgroundimage = image.fromfile(soubor.obrazkylist[1]); if (soubor.obrazkylist[1] == soubor.hledanyobrazek) { unikatnihodnoty.uhodnuteobrazky.add(soubor.obrazkylist[1]); uspechnaobrazku(sender, e); } else neuspechnaobrazku(sender, e); break; case "picture_0_2": if (btn.backgroundimage != null) btn.backgroundimage.dispose(); btn.backgroundimage = image.fromfile(soubor.obrazkylist[2]); if (soubor.obrazkylist[2] == soubor.hledanyobrazek) { unikatnihodnoty.uhodnuteobrazky.add(soubor.obrazkylist[2]); uspechnaobrazku(sender, e); } else neuspechnaobrazku(sender, e); break; case "picture_0_3": if (btn.backgroundimage != null) btn.backgroundimage.dispose(); btn.backgroundimage = image.fromfile(soubor.obrazkylist[3]); if (soubor.obrazkylist[3] == soubor.hledanyobrazek) { unikatnihodnoty.uhodnuteobrazky.add(soubor.obrazkylist[3]); uspechnaobrazku(sender, e); } else neuspechnaobrazku(sender, e); break; case "picture_0_4": if (btn.backgroundimage != null) btn.backgroundimage.dispose(); btn.backgroundimage = image.fromfile(soubor.obrazkylist[4]); if (soubor.obrazkylist[4] == soubor.hledanyobrazek) { unikatnihodnoty.uhodnuteobrazky.add(soubor.obrazkylist[4]); uspechnaobrazku(sender, e); } else neuspechnaobrazku(sender, e); break; case "picture_1_0": if (btn.backgroundimage != null) btn.backgroundimage.dispose(); btn.backgroundimage = image.fromfile(soubor.obrazkylist[5]); if (soubor.obrazkylist[5] == soubor.hledanyobrazek) { unikatnihodnoty.uhodnuteobrazky.add(soubor.obrazkylist[5]); uspechnaobrazku(sender, e); } else neuspechnaobrazku(sender, e); break; case "picture_1_1": if (btn.backgroundimage != null) btn.backgroundimage.dispose(); btn.backgroundimage = image.fromfile(soubor.obrazkylist[6]); if (soubor.obrazkylist[6] == soubor.hledanyobrazek) { unikatnihodnoty.uhodnuteobrazky.add(soubor.obrazkylist[6]); uspechnaobrazku(sender, e); } else neuspechnaobrazku(sender, e); break; case "picture_1_2": if (btn.backgroundimage != null) btn.backgroundimage.dispose(); btn.backgroundimage = image.fromfile(soubor.obrazkylist[7]); if (soubor.obrazkylist[7] == soubor.hledanyobrazek) { unikatnihodnoty.uhodnuteobrazky.add(soubor.obrazkylist[7]); uspechnaobrazku(sender, e); } else neuspechnaobrazku(sender, e); break; case "picture_1_3": if (btn.backgroundimage != null) btn.backgroundimage.dispose(); btn.backgroundimage = image.fromfile(soubor.obrazkylist[8]); if (soubor.obrazkylist[8] == soubor.hledanyobrazek) { unikatnihodnoty.uhodnuteobrazky.add(soubor.obrazkylist[8]); uspechnaobrazku(sender, e); } else neuspechnaobrazku(sender, e); break; case "picture_1_4": if (btn.backgroundimage != null) btn.backgroundimage.dispose(); btn.backgroundimage = image.fromfile(soubor.obrazkylist[9]); if (soubor.obrazkylist[9] == soubor.hledanyobrazek) { unikatnihodnoty.uhodnuteobrazky.add(soubor.obrazkylist[9]); uspechnaobrazku(sender, e); } else neuspechnaobrazku(sender, e); break; case "picture_2_0": if (btn.backgroundimage != null) btn.backgroundimage.dispose(); btn.backgroundimage = image.fromfile(soubor.obrazkylist[10]); if (soubor.obrazkylist[10] == soubor.hledanyobrazek) { unikatnihodnoty.uhodnuteobrazky.add(soubor.obrazkylist[10]); uspechnaobrazku(sender, e); } else neuspechnaobrazku(sender, e); break; case "picture_2_1": if (btn.backgroundimage != null) btn.backgroundimage.dispose(); btn.backgroundimage = image.fromfile(soubor.obrazkylist[11]); if (soubor.obrazkylist[11] == soubor.hledanyobrazek) { unikatnihodnoty.uhodnuteobrazky.add(soubor.obrazkylist[11]); uspechnaobrazku(sender, e); } else neuspechnaobrazku(sender, e); break; case "picture_2_2": if (btn.backgroundimage != null) btn.backgroundimage.dispose(); btn.backgroundimage = image.fromfile(soubor.obrazkylist[12]); if (soubor.obrazkylist[12] == soubor.hledanyobrazek) { unikatnihodnoty.uhodnuteobrazky.add(soubor.obrazkylist[12]); uspechnaobrazku(sender, e); } else neuspechnaobrazku(sender, e); break; case "picture_2_3": if (btn.backgroundimage != null) btn.backgroundimage.dispose(); btn.backgroundimage = image.fromfile(soubor.obrazkylist[13]); if (soubor.obrazkylist[13] == soubor.hledanyobrazek) { unikatnihodnoty.uhodnuteobrazky.add(soubor.obrazkylist[13]); uspechnaobrazku(sender, e); } else neuspechnaobrazku(sender, e); break; case "picture_2_4": if (btn.backgroundimage != null) btn.backgroundimage.dispose(); btn.backgroundimage = image.fromfile(soubor.obrazkylist[14]); if (soubor.obrazkylist[14] == soubor.hledanyobrazek) { unikatnihodnoty.uhodnuteobrazky.add(soubor.obrazkylist[14]); uspechnaobrazku(sender, e); } else neuspechnaobrazku(sender, e); break; } soubor.nactenizadnistrany(); }

problem:

game still crashed after loading image or if added new images file. , if games crashed written crash "lack of memory" nil more , not where. please help.

error:

************** exception text **************

system.outofmemoryexception: out of memory     in system.drawing.image.fromfile (string filename, boolean useembeddedcolormanagement)     in system.drawing.image.fromfile (string filename)     in gamecards.soubory.nactenisouboru.zobrazeniobrazku () d: \ programme \ gamecards \ gamecards \ files \ nactenisouboru.cs: line 60     in gamecards.gamecard.spustit_click (object sender, eventargs e) in d: \ programme \ gamecards \ gamecards \ gamecards.cs: line 49     in system.windows.forms.control.onclick (eventargs e)     in system.windows.forms.button.onclick (eventargs e)     in system.windows.forms.button.onmouseup (mouseeventargs mevent)     in system.windows.forms.control.wmmouseup (message & m, mousebuttons button, int32 clicks)     @ system.windows.forms.control.wndproc (message & m)     in system.windows.forms.buttonbase.wndproc (message & m)     in system.windows.forms.button.wndproc (message & m)     @ system.windows.forms.control.controlnativewindow.onmessage (message & m)     @ system.windows.forms.control.controlnativewindow.wndproc (message & m)     in system.windows.forms.nativewindow.callback (intptr hwnd, int32 msg, intptr wparam, intptr lparam) public void zobrazeniobrazku() // when utilize code sent me upper errors. { int = 0; foreach (button btn in unikatnihodnoty.buttonlist) { if (btn.backgroundimage != null) btn.backgroundimage.dispose(); btn.backgroundimage = image.fromfile(obrazkylist[i++]); } }

c# image memory-leaks switch-statement picturebox

Comments

Popular posts from this blog

Delphi change the assembly code of a running process -

json - Hibernate and Jackson (java.lang.IllegalStateException: Cannot call sendError() after the response has been committed) -

C++ 11 "class" keyword -