【问题标题】:Why use async methods with Azure table storage?为什么对 Azure 表存储使用异步方法?
【发布时间】:2019-03-13 09:46:41
【问题描述】:

我正在使用Microsoft.WindowsAzure.Storage.Table,但无法弄清楚异步方法和常规方法之间的区别,例如CloudTable.ExecuteCloudTable.ExecuteAsync。我何时以及为什么应该使用它们中的每一个?这甚至与存储设计和我正在使用的模块有关,还是我误解了异步方法的概念(我是 c# 和 Azure 的新手)?

编辑:如果我应该始终使用异步方法,为什么在大多数 Azure 表存储指南中实现、可用并且还在使用常规方法?

提前致谢!

【问题讨论】:

  • 异步方法可以异步执行,您可以避免使用它们阻塞您的应用程序。看docs.microsoft.com/en-US/dotnet/csharp/programming-guide/…
  • 谢谢,本指南有所帮助。但我不确定我明白了......从阅读它,我的结论是“总是使用异步方法”。但是,为什么常规方法已实现且可用,而且在大多数 Azure 表存储指南中使用?
  • 取决于您遇到的场景以及您是否真的需要异步方法。当我只有一个控制台应用程序来导入结构时,我不会使用异步方法,因为我不会从中受益。当我有一个桌面应用程序(表单/wpf)时,我会使用异步方法来避免冻结 UI 或阻塞可能导致“滞后”应用程序的线程

标签: c# azure asynchronous azure-storage


【解决方案1】:

基本上,在使用 CloudTable.ExecuteAsync 时,编译器会在后台生成状态机,因此您可以避免性能瓶颈并增强应用程序的整体响应能力。

【讨论】:

    【解决方案2】:

    不只是表存储,任何实现异步操作的服务都应该使用。我们使用异步来卸载主线程并在后台转移任务。主线程准备好在后台任务完成时接受更多请求。一旦完成,它将把控制权带回主线程。如果您不使用异步,您会遇到称为资源匮乏的信息问题,其中您的请求池开始增长并最终您的应用程序挂起。

    查看以下链接,它会详细说明。 Synchronous I/O antipattern

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-02
      • 1970-01-01
      • 1970-01-01
      • 2014-04-03
      • 1970-01-01
      相关资源
      最近更新 更多