gpt4 book ai didi

c# - 如何等待所有异步操作?

转载 作者:太空狗 更新时间:2023-10-29 23:23:39 25 4
gpt4 key购买 nike

我用递归函数做某事

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!";
}

所以,我想要 tbOut.Text = "Done!";只有在所有迭代结束后才会完成。现在它在迭代过程中同时发生。如果我像那样运行这个函数

walk(fd);
tbOut.Text = "Done!";

结果还是一样。如何等待此功能完全结束?

最佳答案

您不必等待对步行功能的子调用完成。因此,您所要做的就是将其更改为 await walk(subDir)。但是,由于您不能等待 void 函数,因此您必须稍微更改它才能使其工作。要使您的 walk 函数可等待,请将返回类型更改为 Task,如下所示:

public async Task walk(StorageFolder folder)

关于c# - 如何等待所有异步操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16385961/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com