CreateFileAsync()停止调试,永不返回

时间:2017-10-17 11:38:51

标签: c# .net

现在我正在尝试使用C#在VS2017上制作UWP应用程序。我在初始时使用CreateFileAsync(fileName, CreationCollisionOption.OpenIfExists)创建两个文件,然后再打开它们。但是在打开第二个文件时停止(在调试期间F5,F10,F11按钮不起作用)。它在创建文件或打开第一个文件时运行很酷。这是我的代码。

public static StorageFile GetDataFileFromLocalFolder(string fileName)
    {
        if (string.IsNullOrEmpty(fileName))
        {
            throw new ArgumentNullException("fileName missing");
        }

        return GetDataFileFromLocalFolderAsync(fileName).Result;
    }

    private static async Task<StorageFile> GetDataFileFromLocalFolderAsync(string fileName)
    {
        var sFolder = ApplicationData.Current.LocalFolder;
        var sFile = await sFolder.CreateFileAsync(fileName, CreationCollisionOption.OpenIfExists);
        return sFile;
    }

有什么问题吗?不应该使用OpenIfExist选项吗?

1 个答案:

答案 0 :(得分:-1)

我将此问题解决为避免await关键字。

public static async Task<StorageFile> GetDataFileFromLocalFolderAsync(string fileName)
    {
        if (string.IsNullOrEmpty(fileName))
        {
            throw new ArgumentNullException("fileName missing"); //remove hard coded string here
        }

        var sFolder = ApplicationData.Current.LocalFolder;
        var sFileTask = sFolder.CreateFileAsync(fileName, CreationCollisionOption.OpenIfExists);
        var sFile = sFileTask.AsTask().Result;

        return sFile;
    }

现在它运作正常。但从来不知道为什么......