现在我正在尝试使用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选项吗?
答案 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;
}
现在它运作正常。但从来不知道为什么......