andreaugust
Gebruiker
- Lid geworden
- 7 jan 2012
- Berichten
- 105
Ik maak een programma waarbij ik een verschijnsel zie dat ik niet begrijp en dat in het programma tijd kost.
Het gaat over een recursie sub die een queue gebruikt met enqueue en dequeue en waarbij op een bepaald ogenblik de q.count nul is en ik dan het programma tracht te verlaten met
If q.count = 0 then
exit sub
end if
Het programma treedt wel de if blok binnen maar verlaat niet onmiddellijk het programma.
Het aantal keren dat het terugkeert hangt ongeveer samen met het aantal keren dat het programma aangeroepen wordt.
Ik tracht nu een sterk vereenvoudigd en gewijzigd voorbeeld te geven.
Het programma gaat bij exit sub toch nog eens naar doehetvolgende wat hetzelfde verschijnsel is als bij mijn programma.
Wat is hier aan de hand en kan ik dit tijdverlies (wat wel aardig oploopt bij mijn programma) vermijden.
Dank bij voorbaat
Het gaat over een recursie sub die een queue gebruikt met enqueue en dequeue en waarbij op een bepaald ogenblik de q.count nul is en ik dan het programma tracht te verlaten met
If q.count = 0 then
exit sub
end if
Het programma treedt wel de if blok binnen maar verlaat niet onmiddellijk het programma.
Het aantal keren dat het terugkeert hangt ongeveer samen met het aantal keren dat het programma aangeroepen wordt.
Ik tracht nu een sterk vereenvoudigd en gewijzigd voorbeeld te geven.
Code:
Private Sub doehetvolgende(ByVal nr As Integer)
nr = nr - 1
If nr = 0 Then
Exit Sub
End If
doehetvolgende(nr)
End Sub
Het programma gaat bij exit sub toch nog eens naar doehetvolgende wat hetzelfde verschijnsel is als bij mijn programma.
Wat is hier aan de hand en kan ik dit tijdverlies (wat wel aardig oploopt bij mijn programma) vermijden.
Dank bij voorbaat
Laatst bewerkt door een moderator: