Зачем нужен Task.Run?
Наткнулась в своем проекте на метод который отправляет сообщение (не мой, код не полный). Никак не могу понять зачем здесь нужен Task.Run.Метод уже является асинхронным. Разве здесь это необходимо?
public async Task<Response> SendScheduledDynamicMessages(List<SendSmsDto> smsDto)
{
try
{
for (int i = 0; i < smsDto.Count; i++)
{
var sms = smsDto[i];
var serialized = System.Text.Json.JsonSerializer.Serialize(sms);
_loggerManager.LogWarn($"[bug-unwanted-sms] {i}: {serialized}");
}
} catch (Exception ex) {
_loggerManager.LogError("error on log serialization");
_loggerManager.LogError(ex.Message);
}
_loggerManager.LogWarn($"[bug-unwanted-sms] to:");
try
{
,,,,,,,,
foreach (var sms in smsDto.Where(sms => !string.IsNullOrEmpty(sms.PhoneNumber)))
{
sms.UserId = new Guid("123456").ToString();
sms.UserName = "Админ";
await Task.Run(async () =>
{
if (sms.PhoneNumber.Length is < 12 or > 12)
{
var useSms = new Entities.Models.Sms()
{
Id = new Guid(),
Text = sms.Text,
Status = MessageStatus.Undeliverable,
CreateDate = DateTimeOffset.UtcNow,
UserId = new Guid("123456"),
PhoneNumber = sms.PhoneNumber,
};
if (useSms != null)
{
_loggerManager.LogError($"Sending message to: {useSms.PhoneNumber}");
await CreateSmsAsync((useSms));
}
} .......
порекомендуйте пожалуйста что будет оптимальнее использовать здесь