我在这个论坛上搜索了我的问题,但没找到任何合适的东西,我的程序流程有问题。
我在Azure上有一个MobileService,它有一个问题表,我的应用程序有一个主菜单和测验按钮,用户可以进入测验页面,在测验页面上我有一个开始测验按钮,显示第一个问题。列表。
这是我用来从数据库中获取问题的代码,我将它放在页面构造函数中,现在当用户按下测验按钮时,页面打开会有一个延迟,这不是很糟糕,因为它不是漫长的等待,只有几秒钟,还有更好的方法吗?
Task<IMobileServiceTable<Question>> getDataFromDatabase = new Task<IMobileServiceTable<Question>>(getQuestions);
getDataFromDatabase.Start();
QuestionList = await getDataFromDatabase;
在同一个函数中我有这个代码修改了开始测验按钮isEnabled属性。除非数据来自服务器,否则这将停止测验,但它不能一直工作,有时启动按钮isenabled设置为true,即使任务已完成,我也会从我的MobileServiceCollectionView QuestionList获得null引用。
Task<bool> assignData = new Task<bool>(assignTabletoitems);
assignData.Start();
startbutton.IsEnabled = await assignData;
对此有任何帮助将不胜感激。
由于
答案 0 :(得分:0)
您不必创建Task<T>
的新实例来查询数据库(您没有提供在您的第一个代码段中使用的getQuestions
的定义,所以我可以'告诉你代码是否正在做它应该做的事情。您通常要做的是从MobileServiceClient
对象获取适当类型的表,然后查询它:
var client = new MobileServiceClient(appUrl, appKey);
var table = client.GetTable<Question>();
var questionList = await table.ToListAsync();
关于您的第二个代码段,如果没有assignTabletoitems
的定义,很难知道您打算执行该代码的内容。