2012-11-06 19 views
18

Piszę do magazynu Azure Table przy użyciu Storage SDK 2.0 z różnych wątków (aplikacja ASP.NET).Czy usługa Azure CloudTable jest bezpieczna dla wątków?

Czy Obiekt CloudTable obiekt wątek bezpieczny? Czy mogę zainicjować CloudStorageAccount, CloudTableClient i CloudTable tylko raz (na przykład w statycznym przewodniku), a następnie użyć ich w różnych wątkach?

A może lepiej utworzyć wszystkie obiekty CloudStorageAccount, CloudTableClient i CloudTable za każdym razem z pustego miejsca (jak pokazano w this article)? Czy w jakikolwiek sposób wpływa na wydajność?

Jaki jest preferowany sposób uzyskiwania instancji CloudTable za każdym razem, gdy wykonywana jest operacja przeciwko tabeli?

Odpowiedz

11

CloudStorageAccount

Wszystkie publiczne statyczny (Shared w języku Visual Basic) elementy członkowskie tego typu są bezpieczne wątek. Żadne elementy instancji nie mają gwarancji, że będą bezpieczne dla wątku .

CloudTableClient

Wszystkie publiczne statyczny (Shared w języku Visual Basic) elementy członkowskie tego typu są bezpieczne wątek. Żadne elementy instancji nie mają gwarancji, że będą bezpieczne dla wątku .

+0

Jaki jest preferowany sposób zgłaszania żądań? Twórz wszystkie obiekty za każdym razem? – alexey

+0

Myślę, że bardzo by to się różniło w zależności od celu/projektu aplikacji. Masz opcje, aby je odtworzyć i/lub uczynić bezpiecznym dla wątków przez zablokowanie. każdy ma swoje zalety i wady. Wątpię, czy istnieje jedna zasada - pasuje wszystkim (ale wtedy byłem konsultantem :-)) –

7
  1. Niestety, nie są one wątku bezpieczne
  2. Na szczęście, to nie ma znaczenia, w ogóle: Komunikacja opiera się na HTTP, co oznacza brak połączenia jest wykorzystywany i za każdym razem aplikacja po prostu tworzy nowy Połączenie HTTP. Więc po prostu odtwórz wszystko na wątek. I przetestowałem nawet w jednym wątku, odtworzenie wszystkiego dla każdego zapytania nie kosztuje nic więcej.
Powiązane problemy