【发布时间】:2015-08-24 16:20:33
【问题描述】:
我想为我发送的对象创建一些嵌套文件夹,如果我在等待之后调试它时有父 ID,它的行为就像打破它没有遵循下一个代码行我能做什么我在互联网上找不到任何解决方案。
public class FileOperations
{
StorageFolder newFile,newFolder;
List<StorageFolder> folderList = new List<StorageFolder>();
public async void CreatingFiles(int cat, int par, string name)
{
StorageFolder folder = Windows.Storage.ApplicationData.Current.LocalFolder;
if (par == 0)
{
StorageFolder file = Windows.Storage.ApplicationData.Current.LocalFolder;
newFile = await file.CreateFolderAsync(name, CreationCollisionOption.ReplaceExisting);
folderList.Add(newFile);
}
else
{
for (int i = 1; i <= folderList.Count; i++)
if (par == i)
{
newFolder = await folderList[par - 1].CreateFolderAsync(name, CreationCollisionOption.ReplaceExisting);
folderList.Add(newFolder);
}
}
}
public Task InitializeAsync()
{
return InitializeOfflineFilesAsync();
}
private Task InitializeOfflineFilesAsync()
{
throw new NotImplementedException();
}
private async Task<StorageFolder> CF(string name, CreationCollisionOption replaceExisting, StorageFolder file)
{
return await file.CreateFolderAsync(name, replaceExisting);
}
}
【问题讨论】:
-
有什么问题?什么不起作用?另外,您的 else 部分对循环有什么作用?它让我想起了For-If-Antipattern
-
你还应该避免使用
async void方法。它们几乎只存在于事件处理程序中。async Task是异步等价于void同步方法。 -
你怎么称呼这个?您的调用堆栈是否有
Wait或Result?
标签: c# asynchronous async-await