C# Azure存储表:启动并忘记异步方法可以吗?

C# Azure存储表:启动并忘记异步方法可以吗?,c#,.net,azure,asynchronous,azure-table-storage,C#,.net,Azure,Asynchronous,Azure Table Storage,在我的MVC web应用程序中,我有一种方法可以清理Azure表存储中的旧数据,比如废弃的用户会话。我正在将我的工作分批放入使用CloudTable.ExecuteBatchAsync执行的TableBatchOperation对象中。我不需要等待结果,如果操作因网络故障等原因失败,也没关系,因为我可以稍后再试。在不使用等待或任何东西的情况下调用该方法并走开可以吗 也就是说,这个代码会导致问题吗 List<TableBatchOperation> batches = { ... }

在我的MVC web应用程序中,我有一种方法可以清理Azure表存储中的旧数据,比如废弃的用户会话。我正在将我的工作分批放入使用
CloudTable.ExecuteBatchAsync
执行的
TableBatchOperation
对象中。我不需要等待结果,如果操作因网络故障等原因失败,也没关系,因为我可以稍后再试。在不使用
等待
或任何东西的情况下调用该方法并走开可以吗

也就是说,这个代码会导致问题吗

List<TableBatchOperation> batches = { ... }
foreach (TableBatchOperation batch in batches) {
    table.ExecuteBatchAsync(batch);
}

// Method ends here
列出批处理={…}
foreach(TableBatchOperation批量操作){
表.ExecuteBatchAsync(批处理);
}
//方法到此结束

或者我是否需要捕获所有返回对象并对其调用
Wait()

您可以这样做,因为它可以正常工作并执行您想要的操作。你不在乎可能失去的工作

您可能仍然需要错误处理和日志记录。假设您错误地设置了存储配置,并且所有工作项都失败了。你可能想知道

在异步函数中包装
table.ExecuteBatchAsync(批处理)
,在该函数中捕获并记录异常。放弃该函数返回的任务。(或者,附加一个延续,但我发现这是更糟糕的代码。)


还要注意的是,资源的使用是无限制的。如果此循环被多次迭代,那么许多操作将排队或并发运行。这可能是个问题。如果您希望低负载,则可以冒险。

取决于您希望从中得到什么。如果无法访问API或无法访问服务,该怎么办?谢谢您的回复。我对问题进行了编辑,以澄清我不需要知道结果。如果有暂时的问题,那没关系,因为我以后会再试一次。