Использование ключевого слова async
само по себе не делает метод запущенным асинхронно. Он просто позволяет использовать оператор await
. Если вы не используете await
, не используйте async
.
В предупреждении просто говорится: «Вы не используете await
, так почему вы используете async
?»
Если вы не используете или не можете использовать await
, то исправление заключается в удалении ключевого слова async
:
public ActionResult CreateRequest([FromBody] DnsRecordDto RecordRequested)
{
var result = IsRecordRequestedNull()
}
Если существует асинхронная версияэтот SaveLogItem
метод (SaveLogItemAsync
может быть?), тогда вы можете подождать его и сделать все async
:
public async Task<ActionResult> CreateRequest([FromBody] DnsRecordDto RecordRequested)
{
var result = await IsRecordRequestedNull()
}
public async Task<bool> IsRecordRequestedNull(DnsRecordDto RecordRequested)
{
bool flag = false;
if (RecordRequested == null)
{
flag = true;
await _commonRepository.SaveLogItemAsync(Constants.TransactionFailedBadData, Constants.STARTING, transId, LogLevel.Trace);
}
return flag;
}
Но я не знаю, откуда взялся этот SaveLogItem
метод,поэтому я не могу сказать, доступна ли вам асинхронная версия.
Если это метод, который вы написали сами и хотите, чтобы он работал асинхронно, тогда вам нужно начать. Посмотрите, где он выполняет какие-либо операции ввода-вывода (чтение / запись файлов, выполнение сетевых запросов и т. Д.), И измените его на использование async
версий этих вызовов (обычно с суффиксом «Async») и ожидайте их. Затем вы можете изменить этот метод и любые методы, которые его вызывают, на async
.
. У Microsoft есть серия очень хорошо написанных статей об асинхронном программировании, которые вы могли бы извлечь из чтения: Асинхронное программирование сасинхронно и жду