VenomGameworld
Legacy Member
Hey,
Op de moment ben ik aan het werken aan een programma dat één of meerdere partities monitort en de verhouding gebruikte ruimte/vrije ruimte grafisch weergeeft. Dit laat ik om de x aantal minuten updaten.
De structuur is als volgt: ik heb een klasse HDmonitor die gebaseerd is op moederklasse Control. Hierin heb ik 2 verschillende threads: 1 "gewone" waarin de lay-out o.a. wordt getekend en 1 welke ik gebruik voor het updaten.
Alles werkt wel, alleen blijft het geheugenverbruik in de taskmanager maar stijgen. Ik laat bepaalde objecten weliswaar disposen, maar blijkbaar is dit niet genoeg. Ook heb ik al wat zitten knoeien met de Garbage Collector maar dit geeft hetzelfde resultaat.
Dit is de code van de update-thread:
Weet er iemand hoe ik dit kan oplossen?
Bij voorbaat dank!
Op de moment ben ik aan het werken aan een programma dat één of meerdere partities monitort en de verhouding gebruikte ruimte/vrije ruimte grafisch weergeeft. Dit laat ik om de x aantal minuten updaten.
De structuur is als volgt: ik heb een klasse HDmonitor die gebaseerd is op moederklasse Control. Hierin heb ik 2 verschillende threads: 1 "gewone" waarin de lay-out o.a. wordt getekend en 1 welke ik gebruik voor het updaten.
Alles werkt wel, alleen blijft het geheugenverbruik in de taskmanager maar stijgen. Ik laat bepaalde objecten weliswaar disposen, maar blijkbaar is dit niet genoeg. Ook heb ik al wat zitten knoeien met de Garbage Collector maar dit geeft hetzelfde resultaat.
Dit is de code van de update-thread:
Code:
private void GetData()
{
Thread.Sleep(1500);
int balk, teller;
double omzetten;
DriveInfo drive = new DriveInfo(letter);
teller = 0;
while (doorgaan)
{
if (drive.IsReady)
{
vrij = (int)(drive.TotalFreeSpace / 1073741824);
totaal = (int)(drive.TotalSize / 1073741824);
omzetten = Math.Round(((double)(totaal) / (double)(200)), 2);
balk = (int)(vrij / omzetten);
gebruik.Width = balk;
}
balk = 0;
omzetten = 0;
teller++;
if (teller == 2)
{
GC.Collect();
teller = 0;
}
this.BeginInvoke(handler);
Thread.Sleep(10000);
}
}
Weet er iemand hoe ik dit kan oplossen?
Bij voorbaat dank!


Zelf kan je er, denk ik, weinig aan doen.
eert het geheugenverbruik. No worries 
dan krijgde zo'n prullen allemaal... en nog meer van da leuks