FileIO.ReadTextAsync se bloquea ocasionalmente

Solo estoy experimentando con WinRT y una aplicación de demostración que estoy creando es una aplicación de estilo "bloc de notas" básica que se carga / guarda en el almacenamiento local. Aunque estoy familiarizado con la adecuadaasync enfoque para la creación de aplicaciones WinRT, mi aplicación de demostración está utilizando un síncronoLoad para mantener las cosas simples

El problema es que cuando se hace una llamada aLoad, funciona 2 de cada 3 veces y el resto del tiempo la aplicación se cuelga en la llamadavar 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; }
    }
}

¿Estoy haciendo algo extraordinariamente estúpido aquí?

FWIW, experimenté con el cambioLoad para bloquear explícitamente en cada paso y esto mejora la suspensión a 1 en 20, pero todavía no entiendo por qué está colgando en absoluto ...

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

    return result;
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta