Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Rilascio risorse
mercoledì 17 maggio 2006 - 10.31
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
ktm86
Profilo
| Junior Member
70
messaggi | Data Invio:
mer 17 mag 2006 - 10:31
ciao a tutti
sto creando in c# una piccola galleria di immagini.
Tramite la function preview carico le anteprime in un'oggetto image e con la funzione btnNext mi muovo per
far scorrere ad una una le immagini.
Il problema è che ogni volta che scorro un'immagine la ram occupata dall'applicazione aumenta spropositatamente (a volte fino a 300mb, questo quello che dice il taskmanager), così ovviamente rallenta tutto.
private void preview(ArrayList file, int index)
{
string fn = file[index].ToString();
//view image
Bitmap bm = (Bitmap)System.Drawing.Image.FromFile(fn);
picPreview.Image = bm.GetThumbnailImage(136,104,null,IntPtr.Zero);
}
private void btnNext_Click(object sender, System.EventArgs e)
{
sett.INDEXIMAGE++;
lblImageCount.Text = Convert.ToString(sett.INDEXIMAGE + 1);
if(sett.INDEXIMAGE != sett.INDEXMAX -1)
{
btnPrev.Enabled = true;
preview(sett.ARR,sett.INDEXIMAGE);
}
else
{
preview(sett.ARR,sett.INDEXIMAGE);
btnNext.Enabled = false;
}
}
trinity
Profilo
| Guru
3.465
messaggi | Data Invio:
mer 17 mag 2006 - 10:39
in c# dovrebbe essere lo stesso per rilasciare le risorse di un oggetto in vb net si utilizza il metodo Dispose.
esempio
From1.Close()
Form1.Dispose()
Ciao
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
ktm86
Profilo
| Junior Member
70
messaggi | Data Invio:
mer 17 mag 2006 - 11:20
ok hai ragione, sapevo che era quello (dispose()) solo che io terminavo picPreview invece della bitmap bm.
Grazie 1000
Cteniza
Profilo
| Guru
1.509
messaggi | Data Invio:
mer 17 mag 2006 - 11:28
La cosa migliore, quando si ha a che fare con oggetti è strutturare i propri blocchi nel modo seguente:
private void preview(ArrayList file, int index)
{
string fn = file[index].ToString();
//view image
using (Bitmap bm = (Bitmap)System.Drawing.Image.FromFile(fn))
{
picPreview.Image = bm.GetThumbnailImage(136,104,null,IntPtr.Zero);
}
}
In questo modo è garantito il rilascio delle risorse.
using è ora presente anche su vb 2005.
WinNet
Profilo
| Newbie
29
messaggi | Data Invio:
lun 31 mag 2010 - 13:33
Ciao Ragazzi,
anche io ho lo stesso problema ma le risorse che rilascio, nel mio caso ram, sono inferiori a quelle che ha preso nel momento della generazione. Aiuto!!!!!!
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !