Azure CloudTable是否是线程安全的?

时间:2012-11-06 07:58:25

标签: .net azure azure-storage azure-table-storage

我正在使用来自不同线程(ASP.NET应用程序)的Storage SDK 2.0写入Azure Table存储。

CloudTable 对象线程安全?我可以只将CloudStorageAccount,CloudTableClient和CloudTable初始化一次(例如,在静态构造函数中),然后在不同的线程中使用它们吗?

或者每次从空白创建所有CloudStorageAccount,CloudTableClient和CloudTable对象是否更好(如this article中所示)?它会以任何方式影响性能吗?

每次对表执行操作时,获取CloudTable实例的首选方法是什么?

2 个答案:

答案 0 :(得分:12)

CloudStorageAccount

  

此类型的任何公共静态(在Visual Basic中为Shared)成员都是   线程安全。任何实例成员都不能保证是线程   安全

CloudTableClient

  

此类型的任何公共静态(在Visual Basic中为Shared)成员都是   线程安全。任何实例成员都不能保证是线程   安全

答案 1 :(得分:7)

  1. 不幸的是,它们不是线程安全的
  2. 幸运的是,它根本不重要: 通信基于HTTP,这意味着每次应用程序只创建新的HTTP连接时都不会重复使用连接。所以只需重新创建每个线程的一切。我甚至在一个线程中进行了测试,为每个查询重新创建所有内容只需花费更多费用。