2012-11-06 34 views
18

Tôi đang ghi vào bộ nhớ Bảng Azure bằng cách sử dụng SDK lưu trữ 2.0 từ các luồng khác nhau (ứng dụng ASP.NET).Có phải Azure CloudTable là chủ đề an toàn không?

Có phải CloudTable đối tượng an toàn chủ đề? Tôi có thể khởi tạo CloudStorageAccount, CloudTableClient và CloudTable chỉ một lần (ví dụ, trong constuctor tĩnh) và sau đó sử dụng chúng trong các chủ đề khác nhau? Hoặc là tốt hơn hết là bạn nên tạo tất cả các đối tượng CloudStorageAccount, CloudTableClient và CloudTable mỗi lần từ một ô trống (như được hiển thị trong this article) hay không? Không. Nó có ảnh hưởng đến hiệu suất theo bất kỳ cách nào không?

Cách ưa thích để nhận được cá thể của CloudTable mỗi lần thực hiện thao tác với bảng là gì?

Trả lời

11

CloudStorageAccount

Bất kỳ public static (chung trong Visual Basic) thành viên của loại này là chủ đề an toàn. Bất kỳ thành viên cá thể nào cũng không được đảm bảo là chuỗi an toàn .

CloudTableClient

Bất kỳ public static (chung trong Visual Basic) thành viên của loại này là chủ đề an toàn. Bất kỳ thành viên cá thể nào cũng không được đảm bảo là chuỗi an toàn .

+0

Vì vậy, cách ưa thích hơn để tạo yêu cầu bảng là gì? Tạo tất cả các đối tượng mỗi lần? – alexey

+0

Tôi nghĩ rằng sẽ rất khác nhau tùy thuộc vào mục tiêu/thiết kế ứng dụng, bạn có tùy chọn để tạo lại và/hoặc để làm cho chủ đề an toàn bằng cách khóa. mỗi người đều có ưu và khuyết điểm. Tôi nghi ngờ có một quy tắc phù hợp với tất cả (nhưng sau đó tôi từng là một nhà tư vấn :-)) –

7
  1. Thật không may, họ không phải là thread an toàn
  2. May mắn thay, nó không quan trọng ở tất cả: Các thông tin liên lạc dựa trên HTTP, có nghĩa là không kết nối được tái sử dụng và mọi ứng dụng chỉ tạo ra một mới Kết nối HTTP. Vì vậy, chỉ cần tạo lại mọi thứ cho mỗi chủ đề. Và tôi đã thử nghiệm ngay cả trong một chủ đề, việc tạo lại mọi thứ cho mỗi truy vấn chỉ tốn kém chi phí.
Các vấn đề liên quan