le5ejumeau
Messages postés130Date d'inscriptionmardi 11 mars 2003StatutMembreDernière intervention 9 juillet 2009
-
4 févr. 2007 à 15:51
OneHacker
Messages postés1447Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention23 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 ?
le5ejumeau
Messages postés130Date d'inscriptionmardi 11 mars 2003StatutMembreDerniè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.