Mas*_*eem 0 .net c# task-parallel-library async-await
我需要使用wait运算符在c#中多次执行一个方法async.以下是我的代码
Task.Factory.StartNew(() => SentSMS(null, creation.SenderMobile, messageToSender));
Task.Factory.StartNew(() => SentSMS(null, creation.ReceiverMobile, messageToReciver));
Task.Factory.StartNew(() => SentSMS(null, empMobile, messageToEmp));
Run Code Online (Sandbox Code Playgroud)
private async Task SentSMS(SMSReceived smsrecived, string mobilenumber ,string message)
{
try
{
sent = new SMSSent();
sent.MobileNumber = Util.ParseMobileNo(mobilenumber);
sent.MobileOperator = Util.GetMobileOperator(mobilenumber);
sent.QueryCodeId = 1;
sent.ReplyByTelcoID = 1;
sent.ReplyText = message;
sent.ReplyByTelcoID = 1;
sent.SMSReceivedId = (smsrecived == null ? 0 : smsrecived.ID);
sent.SMSSentDate = DateTime.Now;
sent.Status = 1;
sentBL.Save(sent);
}
catch (Exception)
{
}
}
Run Code Online (Sandbox Code Playgroud)
问题是,当最后一个请求开始时,它会覆盖其余2个记录.执行此代码后,我已在数据库中检查它保存一次/相同的记录3次.
不要告诉我,我传递相同的数据三次.所有的价值都是不同的.我需要帮助.如果我缺少某些地方,请告诉我.我也尝试过Task.Run().我不想使用等待.等待,结果也是一样的
屏幕截图附有数据库
不要告诉我,我传递相同的数据三次.所有的价值都是不同的.
但它们不是,因为它sent
是一个字段,它被覆盖,然后所有的值都是相同的.
让sent
里面的方法创建一个本地.