ReadTextAsync方法没有返回任何内容

时间:2013-11-14 01:57:41

标签: c# file-io windows-8

我正在开发我的第一个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;
}

1 个答案:

答案 0 :(得分:0)

我看到您(错误地)在该代码段中使用Result而不是await

我怀疑你还在调用堆栈中使用Result,这会导致这种死锁行为。我有一个blog post详细说明了这种死锁发生的原因。

要解决此问题,请移除对Task<T>.ResultTask.Wait的所有来电,并将其替换为await表达式。