У меня есть асинхронный метод с именем LogCloudModel
. Я смущен обратным типом метода. Он имеет вызов метода асинхронизации InsertIntoTableStorage
. Ниже приведен полный образец кода.Что мне следует вернуть из моего метода Async на C# после выполнения операции вставки в хранилище таблиц Azure?
private static async void LogCloudModel(ModelExecutionContext context)
{
var azureStorageAccount = new AzureStorageAccount();
var cloudModelDetail = new CloudModelDetail();
//Populate the cloud model
var cloudModelDetailCollection = PopulateCloudModel(context, cloudModelDetail);
if (cloudModelDetailCollection == null) return;
await InsertIntoTableStorage(azureStorageAccount, cloudModelDetailCollection);
LogTableStorageTransactionResult(azureStorageAccount, operationResult, cloudModelDetail.PartitionKey, cloudModelDetail.RowKey);
}
В настоящее время я ничего не возвращаю (пусто). Является ли моя реализация правильной?
'async Task'. Обратите внимание: вам не нужно фактически возвращать новую задачу() или что-то еще. Возвращенная задача выполняется компилятором. – Will
То, что вы возвращаете, зависит от того, что вам нужно вернуть. Void отлично, если нет необходимости уведомлять об успехе вставки. – Andrew
Вы можете найти мою статью по [async best practices] (https://msdn.microsoft.com/en-us/magazine/jj991977.aspx). –