Garbage collection

le5ejumeau Messages postés 130 Date d'inscription mardi 11 mars 2003 Statut Membre Dernière intervention 9 juillet 2009 - 4 févr. 2007 à 15:51
OneHacker Messages postés 1447 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 23 septembre 2007 - 6 févr. 2007 à 19:55
Bonjour à tous
 Je vous donne d'abord mon code qui est trés simple et ensuite j'exposerai mon probleme qui est plutôt une egnime :

form1 :

 Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

        Label1.Text = "There are " & Demo.Instances.ToString() & " instances of Demo in memory"

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim oDemo As Demo

        For i As Int64 = 0 To 1000

            oDemo = New Demo

        Next

    End Sub

Public Class Demo

Public Shared Instances As Int64

Public Sub New()
Instances +=1
End Sub

Protected Overrides Sub Finalize()
Instances -= 1
End Sub

End Class

sur ma form1 j'ai donc 1 bouton et 1 label
quand j'appuie sur le bouton je créer 1000 instance de Demo et le label et mit à jour et m'affiche "vous avez 1000 instance ouvertes"
jusque là tous va bien

si j'attend 1 petit moment mes instances reviennes à 0 (normale le garbage collection les supprimes)

si j'appuie plusieurs fois sur le bouton je cree plein d'instance et au bout d'un moment elles (les instances) redescende entre 0 et 100(normal aussi puisque je remplit ma memoire et qu'au bout d'un moment lorque l'espace retant devient critique, le garbage collection se "met en route"

PROBLEME :

Lorque je met 100000 au lieu de 1000 (par exemple ) et que j'appuie plusieurs fois sur le bouton le garbage collection se met en priorite haute et me fait le menage mais je me retrouve avec un nombre d'instance négatif ..!!??

QUESTION :

Comment je peux avoir un nombre d'instance négatif ? Ou et quand l'erreur est-elle commise ?

meci pour vos futurs commantaires

le5ejumeau

4 réponses

le5ejumeau Messages postés 130 Date d'inscription mardi 11 mars 2003 Statut Membre Dernière intervention 9 juillet 2009
4 févr. 2007 à 15:54
mince j'ai pas fais attention au grande ligne dsl [javascript:Insert_Emoticon('/imgs2/smile_tongue.gif'); ]
0
OneHacker Messages postés 1447 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 23 septembre 2007 2
5 févr. 2007 à 02:00
C'est bizarre car j'ai un code pratiquement pareil que le tiens je suis sous VB.Net 2003 et ca me fait pas la même erreur !

Redman
0
le5ejumeau Messages postés 130 Date d'inscription mardi 11 mars 2003 Statut Membre Dernière intervention 9 juillet 2009
5 févr. 2007 à 11:05
Et tu as essayé en instanciant 100000 instance en meme temps?
 parceque je l'ai fait sur un autre ordi et sa fait la meme chose.
 A la rigeur tu pourrais me passer ton code histoire que je compart.
0
OneHacker Messages postés 1447 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 23 septembre 2007 2
6 févr. 2007 à 19:55
Oui mais demain car là je dois partir.

Redman
0
Rejoignez-nous