我试图在应用程序启动时加载和读取设置文件,大约 90% 的时间,await GetFileAsync("filename.xml");
永远不会返回,因此挂起应用程序。
大约四分之一的时间,如果我单步执行代码,它实际上会返回并读取文件。
这是代码的一个非常简化的版本:
应用程序.xaml.cs:
protected override void OnLaunched(LaunchActivatedEventArgs args)
{
FileLoader.Load().Wait();
// File-load dependent stuff
}
文件加载器.cs:
public async static Task Load()
{
StorageFolder folder = ApplicationData.Current.LocalFolder;
StorageFile file;
bool fileExists = true;
try
{
// The following line (often) never returns
file = await folder.GetFileAsync("filename.xml");
{
catch
{
fileExists = false;
}
// Do stuff with loaded file
}
如果我在 Visual Studio 中观看输出窗口,等待一段时间后我得到"The thread '<No Name>' (0x30c) has exited with code 0 (0x0)."
有谁知道这里发生了什么?