Я сейчас копирую некоторые файлы из моего Assets
в мою папку LocalStorage
.
То, что я делаю, работает, но мне было интересно, есть ли способ заставить эту часть работать параллельно:
foreach (StorageFile f in files)
{
await f.CopyAsync(postes);
}
Я пробовал что-то подобное, но, конечно, это не работает, потому что CopyAsync
не возвращает Task
и не может быть приведено к Task
:
var tasks = new List<Task>();
foreach (StorageFile f in files)
{
var task = (Task)f.CopyAsync(postes);
tasks.Add(task);
}
await Task.WhenAll();
Полный код:
public async Task loadDefaultPosteInformationAsync()
{
StorageFolder localFolder = ApplicationData.Current.LocalFolder;
StorageFolder postes = await localFolder.CreateFolderAsync("Postes");
StorageFolder appInstalledFolder = Windows.ApplicationModel.Package.Current.InstalledLocation;
StorageFolder assets = await appInstalledFolder.GetFolderAsync(@"Assets\Postes");
var files = await assets.GetFilesAsync();
foreach (StorageFile f in files)
{
await f.CopyAsync(postes);
}
}