Подтвердить что ты не робот

Является ли Azure CloudTable потокобезопасным?

Я пишу в хранилище Azure Table, используя Storage SDK 2.0 из разных потоков (приложение ASP.NET).

Является CloudTable объектом потокобезопасным? Можно ли инициализировать CloudStorageAccount, CloudTableClient и CloudTable только один раз (например, в static constuctor), а затем использовать их в разных потоках?

Или лучше создавать все объекты CloudStorageAccount, CloudTableClient и CloudTable каждый раз из пустого (как показано в в этой статье)? Это влияет на производительность каким-либо образом?

Каков предпочтительный способ получения экземпляра CloudTable каждый раз при выполнении операции с таблицей?

4b9b3361

Ответ 1

CloudStorageAccount

Все публичные статические (Shared in Visual Basic) члены этого типа безопасный поток. Любые члены экземпляра не гарантированно являются потоками сейф.

CloudTableClient

Все публичные статические (Shared in Visual Basic) члены этого типа безопасный поток. Любые члены экземпляра не гарантированно являются потоками сейф.

Ответ 2

  • К сожалению, они не являются потокобезопасными
  • К счастью, это не имеет значения: Связь основана на HTTP, что означает, что соединение не используется повторно, и каждый раз приложение просто создает новое HTTP-соединение. Так что просто воссоздайте все в потоке. И я тестировал даже в одном потоке, воссоздавая все для каждого запроса, просто ничего не стоит.