你好朋友,我对异步和等待关键字的工作感到困惑。实际上我已经写了这个异步函数
private static async Task FillAssignmentStudentTableFromExtraUsers(int assignmentId, List<JToken> lstOfExtraUser)
{
await CreatTable.CreatAssignmentStudentTable();
foreach (var item in lstOfExtraUser)
{
assignmentStudentModel obj = new assignmentStudentModel()
{
AssignmentId = assignmentId,
studentId = (int.Parse)(item.SelectToken("id").ToString()),
name = item.SelectToken("name").ToString(),
username = item.SelectToken("username").ToString()
};
await App.conn.InsertAsync(obj);
}
}
内部部分只是不必要的......在这里我在一些按钮点击中调用了这个函数,没有等待关键字......
private void GrdReport_Tapped_1(object sender, TappedRoutedEventArgs e)
{
FillAssignmentStudentTableFromExtraUsers(3,listofjtoken);
}
此方法将异步运行,这没关系,但在其他地方我想使用此方法填充的数据..我想确保它应该在进行任何计算之前填充所有数据..所以我想只是等待在它像这样之前..
await FillAssignmentStudentTableFromExtraUsers(3,listofjtoken);
但我认为上述语句使其再次运行是否等待上一次通话..任何建议如何等待第一次通话完成..或者我的假设是错误的..任何帮助表示赞赏..