GetFilesAsync停止工作

我有这段代码

public static class Storage { public async static Task Exists(string filename) { var folder = await Package.Current.InstalledLocation.GetFolderAsync("Assets"); var _files= await folder.GetFilesAsync(CommonFileQuery.OrderByName).AsTask().ConfigureAwait(false); var file = _files.FirstOrDefault(x => x.Name == filename); return file != null; } } 

并从我的Windows 8商店应用程序调用它;

 this.IconExists = this.Game != null && Storage.Exists(this.IconName).Result; 

因此,如果我在上面的行上放置一个断点并逐步运行它,它可以工作,但是没有中断并且只是运行应用程序会导致应用程序挂起。

几天前,类似的代码正在提交;

 using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Windows.ApplicationModel; using Windows.Storage; using Windows.Storage.Search; namespace eggrr.Core.FileStorage { public class Storage { private IReadOnlyList _files; public Storage() { _files = GetFilesAsync("Assets").Result; } private async Task<IReadOnlyList> GetFilesAsync(string relativeFolderPath) { var path = string.Format("{0}\\{1}", Package.Current.InstalledLocation.Path, relativeFolderPath); var folder = await StorageFolder.GetFolderFromPathAsync(path); return await folder.GetFilesAsync(CommonFileQuery.OrderByName).AsTask().ConfigureAwait(false); } public bool Exists(string filename) { var file = _files.FirstOrDefault(x => x.Name == filename); return file != null; } private static readonly Storage _instance = new Storage(); public static Storage Instance { get { return _instance; } } } } 

有任何想法吗?

似乎这解决了它的问题;

  public static class Storage { private static IReadOnlyList _files; static Storage() { _files = GetFilesAsync("Assets").Result; } private async static Task> GetFilesAsync(string relativeFolderPath) { var folder = await Package.Current.InstalledLocation.GetFolderAsync("Assets").AsTask().ConfigureAwait(false); return await folder.GetFilesAsync(CommonFileQuery.OrderByName).AsTask().ConfigureAwait(false); } public static bool Exists(string filename) { var file = _files.FirstOrDefault(x => x.Name == filename); return file != null; } } 

更多信息;