2014-12-06 94 views
0

在Windows Store应用程序/ Windows Phone应用程序中,是否有任何方式获取与C++或c#同步的文件/目录列表?所有示例都是异步的。WinRT - 获取文件和目录列表

+2

你为什么要同步?在50毫秒以下的任何延迟都会导致应用失败AFAIK认证。 – 2014-12-06 18:46:24

+0

延迟而不是下我猜你的意思是 – 2014-12-06 19:53:27

+0

OPS,我的坏!是 - OVER :) – 2014-12-07 17:51:14

回答

0

Sollution工作对我来说:How would I run an async Task<T> method synchronously?

var task = Task.Run(async() => { await ... }); 
    task.Wait(); 

样品从这篇文章也工作正常。 http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2013/02/22/windows-8-winrt-storagefolder-hidden-files-net-c-appcontainers-brokering.aspx

p.s. 我忘了提及,我需要同步阅读我的c + +游戏文件列表,而不是应用程序。我从iphone/android移植现有的代码,所以有一些依赖函数结果的地方。

0

在大多数情况下,您会希望异步执行此操作。当应用程序UI挂起时,用户不喜欢它,并且await系统尝试尽可能平滑地进行异步编程,因此您不必执行大量的自定义代码即可保持应用程序的响应。

这就是说,对于这不太可能对响应一个显著的影响,你可以去同步的情况:

如果文件在安装或应用程序数据文件夹,然后应用程序可以使用标准的C访问这些++文件API。该应用程序将无权执行此操作,并需要使用异步StorageItem API(StorageFolders和StorageFiles)

如果应用程序正在从后台线程调用StorageItem,则它可以同步等待异步选项来完成。该应用程序不能以这种方式阻止UI线程:Task.Wait将在UI线程中失败。从这个问题

var thread = myFolder.GetFilesAsync().AsTask(); 
thread.Wait(); 
相关问题