Keresés

Új hozzászólás Aktív témák

  • fabal_

    csendes tag

    válasz drkbl #3230 üzenetére

    Sikerült megoldani. A gond ott volt h mikor listába fűztem fel a képeket s törlésnél a törölni kívánt képek nélkül újra totlama listát. A törölni akarrt elemek benn maradtak a memóriában.(80-100 db kép esetén (2-4 megás) nem tudom hogy de 1,5 GB memóriát megettek, ne kérdzzétek hogyan.) Mikor beviszem a rendszerbe a képeket egy thumbnail méretű kis képet hozok létre ami kb pár KB így nics nam memória használat. Mikor törlöm a képet akkor adatb-ból a hivatkozást s a meghajtóról peedig az ereeti angy képet törlöm a thumbnail megmarad. Mikor legközelebb megnyitom ezt a formotellenőrzöm a File.Exist() témát s ha nincs meg a fájl akkor törlöm a thumbnail-t is.
    Mikor készítem a thu,mbnail képeket erősen ráhívom a GC-t így GC.Collect(GC.GetGeneration(this), GCCollectionMode.Forced);
    //GCCollectionMode.Forced;
    GC.WaitForPendingFinalizers();

    A dispose-os témát nézegettem. De simán csak ráhívtam. Override-ot nem csináltam mivel annyira nem vágom a működését jelenleg.

  • fabal_

    csendes tag

    válasz martonx #3229 üzenetére

    Oks, reménykedtem h van vmiféle másik lehetőség.
    thx a választ

  • fabal_

    csendes tag

    Sziasztok!
    A következő problémám lenne. A main formból nyitok egy formot szálkezeléssel(ThreadPool-al). Itt megtudok adni fhszn-i adatokat és képeket feltölteni(new thread-el stat módban). Ami ekkor egy központi helyre másolódik s elérési út egy mysql adatbázisba és megjelenik egy pictureboxxon. A Gondom az hogy a képeket amiket betöltöttem(background worker-el) elkezdem törölni. Vagyis törlöm mysql-böl a List<Image>-et újra beolvasom a tölendő elem nélkül. S ezután akarom törölni a file-t Ekkor elkezd sírni h egy másik szál jelenleg használja a törlendő képet. :Y A neten találtam eme kódot erre a parára de nem használ. Itt a PICS[] a képek elérési útjának a tömbje lenne.
    for (int i = 0; i < Pics.Length - 1; i++)
    {
    Image node = Image.FromFile(Pics[i]);
    int[] points = Picturebox_Resize(91.0, 91.0, node.Width, node.Height);
    var img = Image.FromFile(Pics[i]).GetThumbnailImage(points[0],points[1], null, new IntPtr());
    node = img;
    img = null;
    }

    Találkoztatok már efféle dologgal? :F Van valami ötletetek rá hogy lehetne megoldani?
    Üdv fabal

Új hozzászólás Aktív témák