protected override async Task OnStartAsync() { var parents = new List<AsyncTask>(); var files = await Account.GetFilesAsync(Folder, CancellationTokenSource.Token); foreach (var task in files.Select(f => new DeleteFileTask(Account, AccountName, 0, null, f))) { parents.Add(task); AddTask(task); } var dirs = await Account.GetSubfoldersAsync(Folder, CancellationTokenSource.Token); foreach (var task in dirs.Select(d => new DeleteFolderTask(Account, AccountName, Priority, null, d))) { parents.Add(task); AddTask(task); } var lastTask = new DeleteEmptyFolderTask(Account, AccountName, Priority, parents.ToArray(), Folder); AddTask(lastTask); await Task.Run(async () => { while (lastTask.State == AsyncTaskState.Running || lastTask.State == AsyncTaskState.Waiting) await Task.Delay(500); State = lastTask.State; OnStateChanged(); }); }
protected override async Task OnStartAsync() { var parents = new List <AsyncTask>(); var files = await Account.GetFilesAsync(Folder, CancellationTokenSource.Token); foreach (var task in files.Select(f => new DeleteFileTask(Account, AccountName, 0, null, f))) { parents.Add(task); AddTask(task); } var dirs = await Account.GetSubfoldersAsync(Folder, CancellationTokenSource.Token); foreach (var task in dirs.Select(d => new DeleteFolderTask(Account, AccountName, Priority, null, d))) { parents.Add(task); AddTask(task); } var lastTask = new DeleteEmptyFolderTask(Account, AccountName, Priority, parents.ToArray(), Folder); AddTask(lastTask); await Task.Run(async() => { while (lastTask.State == AsyncTaskState.Running || lastTask.State == AsyncTaskState.Waiting) { await Task.Delay(500); } State = lastTask.State; OnStateChanged(); }); }