C# 具有多个等待函数的Foreach执行数组索引长度的两倍 我一直在努力寻找解决办法。
我有一个foreach循环C# 具有多个等待函数的Foreach执行数组索引长度的两倍 我一直在努力寻找解决办法。,c#,foreach,async-await,C#,Foreach,Async Await,我有一个foreach循环 int[] guardianContacts = {1,2,3}; foreach (var s in guardianContacts) { string response = await _messageRepo.SendMessage(s.ContactNumber, model.TextMessage); SmsDetails modelDetails = new SmsDetails { SmsType = "manu
int[] guardianContacts = {1,2,3};
foreach (var s in guardianContacts)
{
string response = await _messageRepo.SendMessage(s.ContactNumber, model.TextMessage);
SmsDetails modelDetails = new SmsDetails
{
SmsType = "manual",
StudentGuardianId = s.StudentGuardianId,
AspNetUserId = member.Id,
DateSent = DateTime.Now,
Status = response,
Message = model.TextMessage
};
await _messageRepo.InsertSmsDetails(modelDetails);
}
很明显,变量guardianContacts
只有3个索引
但当它执行时。它的循环次数是索引长度的两倍,在本例中,我运行它时有3个,它循环6次。请问为什么会这样?顺便说一下,我正在使用async和wait
更新:
var-guardianContacts={1,2,3}代码>到int[]guardianContacts={1,2,3}代码>
注意:这行代码string response=wait\u messageRepo.sendmages(s.ContactNumber,model.TextMessage)代码>调用api请求
我这样做是为了检查它在没有等待的调用的情况下循环了多少次,结果是3
int[] guardianContacts = {1,2,3};
int ctr = 0
foreach (var s in guardianContacts)
{
ctr++;
}
也许会取代
var guardianContacts = {1,2,3};
与
以下代码:
int[] guardianContacts = { 1, 2, 3 };
foreach (var s in guardianContacts)
{
Response.Write(s + "<br />");
Response.Flush();
}
这里的问题是,我对Microsoft.jQuery.Unobtrusive.Ajax有多个引用,这就是它调用两次的原因
不编译EthatAnks@Jonesopolis,请查看更新这应该是注释,因为OP显然能够运行一些代码。。。只是和帖子里提供的不同。。。
int[] guardianContacts = { 1, 2, 3 };
foreach (var s in guardianContacts)
{
Response.Write(s + "<br />");
Response.Flush();
}
1
2
3