我可以第一次阅读文本文件。当我下次尝试读取相同的文本文件时,它退出该函数并返回空值。
static string configData = "";
async public void readtextFile(string folder, string file)
{
StorageFolder storageFolder = await Package.Current.InstalledLocation.GetFolderAsync(folder);
StorageFile storageFile = await storageFolder.GetFileAsync(file);
configData = await FileIO.ReadTextAsync(storageFile);
}
请建议我,如何解决此问题..
由于 SheikAbdullah
答案 0 :(得分:4)
不要忘记readtextFile
是一种异步方法。当您调用它时,它实际上会在到达第一个await
时返回,因此此时configData
尚未设置。您应该从方法返回值,并等待方法:
async public Task<string> readtextFile(string folder, string file)
{
StorageFolder storageFolder = await Package.Current.InstalledLocation.GetFolderAsync(folder);
StorageFile storageFile = await storageFolder.GetFileAsync(file);
string configData = await FileIO.ReadTextAsync(storageFile);
return configData;
}
...
string configData = await readTextFile(folder, file);
即使您想在字段中存储configData
,在阅读该值之前仍需await readtextFile
。