Tervehdys!
Törmäsin ongelmaan josta en tahdo päästä yli.
Kyse on säikeistetystä VB.net ohjelmasta.
Aina kun ajetaan säiettä se kasvattaa muistin käyttöä ja kahvojen määrää.
Tämä ongelma on myös putkan esimerkki ohjelmassa jossa käytetään säikeitä ajettaessa kahta laskuria. Käytettyjen säikeiden määrä ei kuitenkaan lisäänny muuta kuin niiden suorituksen ajaksi.
Loppu tuloksena tästä on se että ohjelma tukehtuu ennen pitkää.
Miten pystyn vapauttamaan kahvat ja muistin?
taitaisi garbagecollection auttaa.
Muistaakseni siellä oli tyyliin system.gc.collect() ja system.gc.dispose(), kokeile auttaisko ne.
system.gc.collect() parantaa tilannetta, mutta ei poista ongelmaa kokonaan.
system.gc.dispose() komentoa en löytänyt enkä mitään sinne päinkään.
se dispose löytyykin objekteille, kuten streameille:
streami.dispose()
käytä tuota disposea kaikille objekteille joita voit, niin eiköhän rupea muisti vapautumaan
Aina kun säie käynnistetään ohjelma nappaa lisää kahvoja ja muistia joka ei palaudu system.gc.collect komennon jälkeen.
Tässä yhteydessä ei ole käytössä yhtään objektia johon voisi käyttää tuota dispose funktiota.
Voisiko ongelma johtua käyttämästäni VB.net versiosta (2002)?
Toimiiko muilla säie ohjelmat moitteettomasti?
Törmäsin samaan ongelmaan myös helpistä löytyvässä TCP listener esimerkki ohjelmassa.
Aihe on jo aika vanha, joten et voi enää vastata siihen.