Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Oslobadjanje memorije u VB.net-u

[es] :: .NET :: .NET Desktop razvoj :: Oslobadjanje memorije u VB.net-u

[ Pregleda: 2247 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Acid.Reconected
Nikola Milanovic
Cacak

Član broj: 32821
Poruke: 20
*.teleportgroup.net



Profil

icon Oslobadjanje memorije u VB.net-u01.10.2004. u 12:43 - pre 186 meseci
pozdrav svima

imam jedan problem oko oslobadjanja memorije koju zauzimju objekti deklrisani sa NEW:

Ovako: u treeview kontroli, kada korisnik klikne na neki node, prave se tri nova picture boxa

Code:

dim slika1 as new picturebox()
dim slika2 as new picturebox()
dim slika3 as new picturebox()


pa se onda te slike prikazuju na treeview-u

Code:

treeview1.controls.addrange(new control() {slika1,slika2,slika3})


E sada nastaje problem kada korisnik bas dosta puta klikne na razlicite node-ove pa se sve vise memorije zauzima stvaranjem ovih slicica. probao sam da ih brisem ovako:

Code:

slika1.dispose
slika2.dispose
slika3.dispose


ali onda nijedna slika nije prikazana jer je odmah izbrisana.

E pitanje glasi: postoji li nacin da se izbrise memorija svih objekata koji vise ne postoje, a pri brisanju nisu oslobodili memoriju?

HVALA>
Hide me away from danger
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
66.228.70.*



+6 Profil

icon Re: Oslobadjanje memorije u VB.net-u01.10.2004. u 13:04 - pre 186 meseci
Možeš da eksplicitno pozoveš GC.Collect(), ali se obično preporučuje da ne radiš to, već da ostaviš GC-u da sam proceni kad treba da pokupi memoriju.
 
Odgovor na temu

EXeX

Član broj: 20651
Poruke: 166
*.fesb.hr



Profil

icon Re: Oslobadjanje memorije u VB.net-u01.10.2004. u 15:22 - pre 186 meseci
Jarane kao sto ti je receno nemoj da se puno zezas sa oslobadjanjem memorije kod .NET-a jer je to posao GC-a.
Nego rjesenje tvoga problema je da jednom stvoris instancu a kasnije po porebi samo mijenjas sadrzaj te instance.
Jednom se meni desilo isto to kad sam radio jedan real-time sistem koji je svake sekunde provjeravao sadrzaj BD-a.
Ja sam u toj petlji koja je ustvari bila timer kreirao objekte i tako mi se aplikacija rusila.
Rjesenje je bilo da kreiram jednu instancu te onda samo mijenjam preko reference sadrzaj te instance.Dakle jedan memoriski prostor vise sadrzaja.
eX
 
Odgovor na temu

Acid.Reconected
Nikola Milanovic
Cacak

Član broj: 32821
Poruke: 20
*.teleportgroup.net



Profil

icon Re: Oslobadjanje memorije u VB.net-u02.10.2004. u 14:23 - pre 186 meseci
probao sam nesto slicno, ali mi onda prikazivanje tih slicica ne ide bas po planu. Ja sam to probao tako sto sam na pocetku klase deklariso slicice, a posle umesto NEW samo im menjao polozaj, ali onda pocunju nekeako cudno da se ponasaju.

A sto je toliko strasno rucno koristiti GC?
Hide me away from danger
 
Odgovor na temu

EXeX

Član broj: 20651
Poruke: 166
*.cmu.carnet.hr



Profil

icon Re: Oslobadjanje memorije u VB.net-u03.10.2004. u 16:59 - pre 186 meseci
Vjerovatno nisi nesto dobro uradio,moralo bi ici.
Zato sto je GC predvidjen da automatski to radi i onda se nekad moze desiti da dodje do zbrke ili da se neoslobodi memorija itd...
Za dublju analizu potrazi malo na netu.
eX
 
Odgovor na temu

Deep|Blue
Srce Srbije

Član broj: 631
Poruke: 1424
*.smin.sezampro.yu.

ICQ: 101830817


+314 Profil

icon Re: Oslobadjanje memorije u VB.net-u07.10.2004. u 12:59 - pre 186 meseci
*ako zelis da ti na svkom cvoru treeview kontrole ostaju slike, ond si malo nagrabusio. :)
u tom slucaju probaj da pravis manje slike - thumbinail-ove, po mogucnosti da smanjis broj boja ili tako nesto. ja sam u listview kontroli bez nekih vecih problema prikazivao i do 70-80 slicica velicine 100*70 pix u 8bit depth, ali kao ikone stavki.
picturebox kontrola pravi velike probleme sa memorijom, ukoliko je ne oslobodis. ili ako suvise uvecas sliku.

*ukoliko nema potrebe da se prikazuju slike na prethodnim cvorovima, vec samo na trenutnom onda je vec mnogo lakse
kreiraj 3 picturebox-a
e sad kad prikzujes slike u njima probaj nesto kao

Code:

picturebox1.dispose
picturebox = image.fromfile(putanja1)
treeview1.controls.add(picturebox1)

'ponovis ovo za preosala 2 pictureboxa

"Hmmm", rekao je, "...suprostavlja se nadrealizmu prikrivene metafore..." Razmišljao je tome na trenutak, a onda je zatvorio beležnicu s mrkim osmehom.
"I smrt je za njih suviše dobra"
 
Odgovor na temu

[es] :: .NET :: .NET Desktop razvoj :: Oslobadjanje memorije u VB.net-u

[ Pregleda: 2247 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.