2012-05-09 3 views
1

Я могу прочитать текстовый файл в первый раз. когда я попытаюсь прочитать один и тот же текстовый файл в следующий раз, он выйдет из функции и вернет нулевое значение.Не можете прочитать текстовый файл в приложениях метро?

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

ответ

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, прежде чем прочитать значение.

+0

спасибо много .. это решает моя проблема .... – SheikAbdullah

Смежные вопросы