我正在开发我的第一个Windows8应用程序(XAML + C#),我正在从ApplicationData.Current.LocalFolder中读取文本文件 - 我正在使用下面的代码片段来获取数据但是它没有读取任何内容,即使数据是在磁盘上的文件中:
我尝试在ReadTextAsync调用行之后调试此代码 - 没有任何事情发生。
private static async Task<string> ReadData()
{
try
{
// checking whether file exists on the disk or not
if (IsFileExistAsync("general.txt").Result)
{
string fileContents = await PathIO.ReadTextAsync("general.txt");
if (!string.IsNullOrEmpty(fileContents))
{
return fileContents;
}
}
else
{
return string.empty;
}
}
catch (Exception)
{
}
return string.empty;
}
答案 0 :(得分:0)
我看到您(错误地)在该代码段中使用Result
而不是await
。
我怀疑你还在调用堆栈中使用Result
,这会导致这种死锁行为。我有一个blog post详细说明了这种死锁发生的原因。
要解决此问题,请移除对Task<T>.Result
和Task.Wait
的所有来电,并将其替换为await
表达式。