FileIO.ReadTextAsync иногда зависает

Я просто экспериментирую с WinRT и одним демонстрационным приложением, которое я создаю, - это базовый «блокнот». приложение стиля, которое загружает / сохраняет в локальное хранилище. Пока я знаком сasync подход для создания приложений WinRT, мое демонстрационное приложение использует синхронныйLoad чтобы все было просто.

Проблема заключается в том, что когда звонятLoadработает 2 раза из 3, а остальное время приложение зависает на вызовеvar result = await FileIO.ReadTextAsync(storageFile);

public class ContentStorage : IContentStorage
{
    private const string FileName = "contents.txt";

    public string Load()
    {
        return LoadAsync().Result;
    }

    public void Save(string content)
    {
        SaveAsync(content);
    }

    private static async Task<string> LoadAsync()
    {
        var storageFile = await LocalFolder.GetFileAsync(FileName);
        var result = await FileIO.ReadTextAsync(storageFile);

        return result;
    }

    private static async void SaveAsync(string content)
    {
        var storageFile = await LocalFolder.CreateFileAsync(FileName, CreationCollisionOption.ReplaceExisting);

        FileIO.WriteTextAsync(storageFile, content);
    }

    private static StorageFolder LocalFolder
    {
        get { return ApplicationData.Current.LocalFolder; }
    }
}

Я делаю что-то необычайно глупое здесь?

FWIW, я экспериментировал с изменениемLoad просто явно блокировать на каждом шаге, и это улучшает зависание до 1 из 20, но я все еще не понимаю, почему оно вообще зависает ...

public string Load()
{
    var storageFile = LocalFolder.GetFileAsync(FileName).AsTask().Result;
    var result = FileIO.ReadTextAsync(storageFile).AsTask().Result;

    return result;
}

Ответы на вопрос(2)

Ваш ответ на вопрос