gpt4 book ai didi

c# - GetFilesAsync 停止工作

转载 作者:行者123 更新时间:2023-11-30 12:12:17 25 4
gpt4 key购买 nike

我有这段代码

public static class Storage
{
public async static Task<bool> 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<StorageFile> _files;

public Storage()
{
_files = GetFilesAsync("Assets").Result;
}

private async Task<IReadOnlyList<StorageFile>> 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<StorageFile> _files;

static Storage()
{
_files = GetFilesAsync("Assets").Result;
}

private async static Task<IReadOnlyList<StorageFile>> 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;
}
}

更多信息;

关于c# - GetFilesAsync 停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13930113/

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