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: 856 | Odgovora: 5 ]

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

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
01.10.2004. u 12:43 

Dragi Tata

Član broj: 1958
Poruke: 3882
66.228.70.*

Sajt: www.novetehnologije.com


Profil

icon Re: Oslobadjanje memorije u VB.net-u01.10.2004. u 13:04
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.
01.10.2004. u 13:04 

EXeX

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



Profil

icon Re: Oslobadjanje memorije u VB.net-u01.10.2004. u 15:22
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
01.10.2004. u 15:22 

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
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
02.10.2004. u 14:23 

EXeX

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



Profil

icon Re: Oslobadjanje memorije u VB.net-u03.10.2004. u 16:59
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
03.10.2004. u 16:59 

Deep|Blue
Srce Srbije

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

ICQ: 101830817


Profil

icon Re: Oslobadjanje memorije u VB.net-u07.10.2004. u 12:59
*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

At this moment, I'm probably swimming in a deep blue sea!
07.10.2004. u 12:59 

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

[ Pregleda: 856 | Odgovora: 5 ]

Postavi temu Odgovori

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