Io uso funzione ricorsiva di fare qualcosaCome attendere tutte le operazioni asincrone?
public async void walk(StorageFolder folder)
{
IReadOnlyList<StorageFolder> subDirs = null;
subDirs = await folder.GetFoldersAsync();
foreach (var subDir in subDirs)
{
var dirPath = new Profile() { FolderPath = subDir.Path};
db.Insert(dirPath);
walk(subDir);
}
tbOut.Text = "Done!";
}
Quindi, voglio che tbOut.Text = "Fatto!"; sarà fatto solo al termine di tutte le iterazioni. Al momento è allo stesso tempo felice mentre le iterazioni sono in corso. Se eseguo questa funzione in questo modo
walk(fd);
tbOut.Text = "Done!";
il risultato è sempre lo stesso. Come aspettare quando questa funzione finirà completamente?
In effetti, si dovrebbe quasi mai * * avere un metodo asincrono void' '... sono praticamente presente solo per consentire i gestori di eventi essere asincroni. –
Grazie! Che funzioni! – splash27