【问题标题】:WinRT - Get list of files and directories [duplicate]WinRT - 获取文件和目录列表[重复]
【发布时间】:2015-02-04 18:04:21
【问题描述】:

有没有办法在 Windows 应用商店应用程序/Windows 手机应用程序中使用 c++ 或 c# 同步获取文件/目录列表?所有示例都是异步的..

【问题讨论】:

  • 为什么要同步?任何低于 50 毫秒的延迟都将导致应用无法通过 AFAIK 认证。
  • 我猜你的意思是延迟而不是延迟
  • OPS,我的错!是的 - 结束:)

标签: c# c++ windows-runtime windows-phone-8.1 windows-8.1


【解决方案1】:

在大多数情况下,您会希望异步执行此操作。当应用程序 UI 挂起时,用户不喜欢它,并且 await 系统试图使异步编程尽可能流畅,因此您不必实现大量自定义代码来保持应用程序响应。

也就是说,对于不太可能对响应能力产生重大影响的情况,您可以进行同步:

如果文件位于安装或应用程序数据文件夹中,则应用可以使用标准 C++ 文件 API 访问它们。该应用没有权限访问其他地方的文件来执行此操作,并且需要使用异步 StorageItem API(StorageFolders 和 StorageFiles)

如果应用从后台线程调用 StorageItem,那么它可以同步等待异步选项完成。应用程序无法以这种方式阻塞 UI 线程:Task.Wait 将在 UI 线程中失败。

var thread = myFolder.GetFilesAsync().AsTask();
thread.Wait();

【讨论】:

    猜你喜欢
    • 2014-06-06
    • 2012-10-01
    • 2011-03-12
    • 2017-01-21
    • 2016-01-20
    • 2020-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多