我的程序是这样的,有一个类在启动的时候需要从本地文件读取字符串,所以写了一个异步方法用来读文件,然后在构造函数里调用了它。刚开始学UWP编程,也是第一次接触UWP的异步编程,不是很懂是不是异步方法不能这么用?但是我在Debug模式下程序没有问题,切换到Release就出现下面的状况了,请各位大佬指教指教!
public MyPage()
{
this.InitializeComponent();
if (isLoaded == false)
{
// 程序进入了异步方法里,但是没执行完异步方法的所有语句
// 就跳出来直接走到isLoaded=true了
// 导致没读到数据
var task = GetJsonFileAsync();
isLoaded = true;
}
}
private async Task GetJsonFileAsync()
{
var uri = new System.Uri("ms-appx:///Assets/Data/Data.json");
// 只有上面这一行执行了,下面标记了await的都跳过了
var file = await StorageFile.GetFileFromApplicationUriAsync(uri);
string text = await Windows.Storage.FileIO.ReadTextAsync(file);
var arr = text.Split('Y');
DataStore.Data = arr[0];
DataStore.Filter = arr[1];
}