J'ai une classe personnalisée écrite, que j'instancier d'une procédure d'événement semblable àPourquoi A fonctionne-t-il mais pas B?
Private Sub EventHandler
For intForCounter = 1 to intUserEntry
Dim newObj As New MyClass
newObj.Property
newObj.Method()
Next
End Sub
La classe elle-même ressemble à quelque chose comme ça
Public Property Time As Date
'First attempt:
Dim tmeExec As New Timer
Public Sub Method()
'Second Attempt
Dim tmeExec As New Timer
'A bunch of code for converting a timespan to milliseconds and storing that in intInterval
With tmeExec
.Enabled = True
.Interval = intInterval
End With
AddHandler tmeExec.Tick, AddressOf TickHandler
End Sub
Private Sub TickHandler(ByVal myObj As Object, ByVal myArgs As EventArgs)
Dim tmeSender As Timer = CType(myObj, Timer)
tmeSender.Stop()
'Some code here to do something
End Sub
Quand j'ai eu le placement de temps à l'emplacement « First Tentative ', tout a été déclenché au dernier intervalle spécifié. Mon attente est que chaque fois qu'un nouvel objet est instancié, un nouveau temporisateur aurait été instancié avec lui, et mettre ainsi l'instanciation dans la classe serait le bon chemin à parcourir. Ce n'est pas le cas.
Mais je veux savoir pourquoi il se comporte comme il le fait. Il est bon de savoir comment quelque chose fonctionne, mais si vous savez POURQUOI quelque chose fonctionne, vous ne faites pas cette gaffe à nouveau. J'ai demandé à mon professeur, mais je n'ai pas vraiment compris sa réponse aussi complètement que je le voudrais.
Eh bien, cela semble un peu contre-intuitif. Juste une chose de plus à retenir, je suppose. – Langus