【发布时间】:2016-12-05 17:33:06
【问题描述】:
我正在尝试将 10000 条记录插入 Azure 表存储。我正在使用 ExecuteAsync() 来实现它,但不知何故,大约插入了大约 7500 条记录,其余记录丢失了。我故意不使用 await 关键字,因为我不想等待结果,只想将它们存储在表中。下面是我的代码 sn-p。
private static async void ConfigureAzureStorageTable()
{
CloudStorageAccount storageAccount =
CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting("StorageConnectionString"));
CloudTableClient tableClient = storageAccount.CreateCloudTableClient();
TableResult result = new TableResult();
CloudTable table = tableClient.GetTableReference("test");
table.CreateIfNotExists();
for (int i = 0; i < 10000; i++)
{
var verifyVariableEntityObject = new VerifyVariableEntity()
{
ConsumerId = String.Format("{0}", i),
Score = String.Format("{0}", i * 2 + 2),
PartitionKey = String.Format("{0}", i),
RowKey = String.Format("{0}", i * 2 + 2)
};
TableOperation insertOperation = TableOperation.Insert(verifyVariableEntityObject);
try
{
table.ExecuteAsync(insertOperation);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
}
方法的使用有什么不对吗?
【问题讨论】:
-
如果您不等待它完成,它可能不会完成(特别是如果您的进程退出)。而且您不会发现任何错误。
-
如果你不等待它完成,它可能不会完成!
-
这个问题你解决了吗,有更新吗?当您将记录插入 Azure 表存储时,您可以在控制台应用程序中捕获详细的异常并通过 Fiddler 捕获网络包。
-
@Bruce-MSFT 我决定继续使用 await ExecuteAsync() 选项,因为这样我可以插入所有记录。没有 await 关键字,一些记录无法插入。
标签: c# azure async-await azure-table-storage