我需要多次执行一个方法作为c#中的异步

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().我不想使用等待.等待,结果也是一样的

屏幕截图附有数据库

Jon*_*nna 8

不要告诉我,我传递相同的数据三次.所有的价值都是不同的.

但它们不是,因为它sent是一个字段,它被覆盖,然后所有的值都是相同的.

sent里面的方法创建一个本地.

  • 我多么愚蠢.你救了我的灵魂.谢谢伙伴:) (2认同)