Salve a tutti!!
Ho questa funzione che viene generata chiamando bgw.runworkerasync()
codice:
Public Sub Primaria(ByVal sender As Object, ByVal e As DoWorkEventArgs) Handles bw.DoWork
Dim roll As New eseguicallback(AddressOf esegui)
If recursive = True Then
recursive = False
For Each elem As String In folderarray
If elem = "EOF" Then
Exit For
End If
For Each elm As String In estarray
If elm = "EOF" Then
Exit For
End If
Dim a As String = "*"
elm = a & elm.ToLower
bw.ReportProgress(0)
If bw.CancellationPending Then
e.Cancel = True
Exit Sub
End If
Me.BeginInvoke(roll, elem, elm)
Next
Next
Else
If bw.CancellationPending Then
e.Cancel = True
Exit Sub
End If
Me.BeginInvoke(roll, e.Argument.path, e.Argument.est)
'esegui(e.Argument.path, e.Argument.est)
End If
End Sub
Quello che non capisco è perchè chiamata una volta la funzione (con recursive true!)appena termina i for annidati, invece di concludere la sub, itera ancora una volta su se stessa, ora ovviamente recursive è false e mi da errore!
Perchè chiama se stessa un'altra volta?
é un comportamento anomalo, che tra l'altro viene dall'interno di questa sub, ho controllato in debug e nessuna ulteriore chiamata alla sub ne cambio di valori strani a recursive.
Qualcuno ci capisce qualcosa?