Ciao Alka!
Ti riporto un po di codice così da spiegarmi meglio (tenendo conto che possa aver sbagliato tutto però).
Questa è una normale funzione ricorsiva che userei per scansionare le cartelle/sottocartelle:
richiamando la funzione e passando come argomento l'oggetto directoryInfo iniziale scansiona tutti file nelle sottocartelle.codice:Private Sub ricorsione(ByVal _myFld As IO.DirectoryInfo) For Each subF As IO.DirectoryInfo In _myFld.GetDirectories ricorsione(subF) Next For Each f As IO.FileInfo In _myFld.GetFiles 'agisco e manipolo i miei files Next End Sub
Io ho provato a richiamare tale funzione nel doWork del BGW:
E per iniziare il processo chiamo uno start asincrono del BGW:codice:Private Sub myBGW_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Handles myBGW.DoWork If myBGW.CancellationPending Then e.Cancel = True Else ricorsione(New IO.DirectoryInfo("C:\MiaCartella")) End If End Sub
Ora...così il codice viene eseguito ma non riesco a passare il "progresso" del lavoro all'evento ProgressChanged non avendo spazio di manovra sulla funzione (come farei se il loop fosse inserito nel DoWork stesso).codice:myBGW.RunWorkerAsync()
Di conseguenza non riesco ad avere il risultato che voglio (ovvero in fase di scanning avere l'aggiornamento in una label o txtbox).
Non so se sono stata chiara sul problema...ho sempre problemi a spiegarmi![]()

).
Rispondi quotando
