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