Is Azure CloudTable thread-safe?

拜拜、爱过 提交于 2019-12-03 09:19:31

问题


I'm writing to Azure Table storage using Storage SDK 2.0 from different threads (ASP.NET application).

Is CloudTable object thread-safe? Can I initialize CloudStorageAccount, CloudTableClient and CloudTable only once (for example, in static constuctor) and then use them in different threads?

Or is it better to create all CloudStorageAccount, CloudTableClient and CloudTable objects each time from a blank (like it's shown in this article)? Does it affect the performance in any way?

What is a prefered way of getting instance of CloudTable each time executing an operation against the table?


回答1:


CloudStorageAccount

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

CloudTableClient

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.




回答2:


  1. Unfortunately, they are not thread safe
  2. Fortunately, it doesn't matter at all: The communication is based on HTTP, which means no connection is reused and everytime the app just creates a new HTTP connection. So just recreate everything per thread. And I have tested even in one thread, recreating everything for each query just costs nothing more.


来源:https://stackoverflow.com/questions/13246720/is-azure-cloudtable-thread-safe

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!