有没有办法在Windows应用商店应用/ Windows手机应用中同步获取c ++或c#的文件/目录列表?所有示例都是异步的..
答案 0 :(得分:0)
在大多数情况下,您需要异步执行此操作。当应用程序UI挂起时,用户不喜欢它,并且await系统尝试使异步编程尽可能顺利,因此您不必实现大量自定义代码来保持应用程序的响应。
也就是说,对于不太可能对响应能力产生重大影响的案例,您可以同步:
如果文件位于安装或应用程序数据文件夹中,则应用程序可以使用标准C ++文件API访问它们。该应用程序将没有其他文件的权限来执行此操作,并将需要使用异步StorageItem API(StorageFolders和StorageFiles)
如果应用程序从后台线程调用StorageItem,则它可以同步等待async选项完成。应用程序无法以这种方式阻止UI线程:Task.Wait将在UI线程中失败。
var thread = myFolder.GetFilesAsync().AsTask();
thread.Wait();
答案 1 :(得分:0)
这个问题的解决对我有用:How would I run an async Task<T> method synchronously?
var task = Task.Run(async () => { await ... });
task.Wait();
P.S。 我忘了提一下,我需要同步阅读我的c ++游戏的文件/目录列表,而不是app。我从iphone / android移植现有代码,因此有些地方依赖于函数的结果。