CopyAsync是并行的吗?

时间:2019-04-24 13:58:09

标签: c# uwp

我目前正在将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);
    }
}

0 个答案:

没有答案