cách tốt nhất để lưu trữ một số biến cục bộ cho mỗi chuỗi là gì?Địa chỉ lưu trữ cục bộ
Trả lời
Bạn có thể chỉ ra rằng các biến tĩnh nên được lưu trữ mỗi sợi sử dụng thuộc tính [ThreadStatic]
:
[ThreadStatic]
private static int foo;
tùy chọn khác là phải vượt qua trong một tham số vào phương pháp chủ đề bắt đầu. Bạn sẽ cần phải giữ trong phạm vi, nhưng nó có thể được dễ dàng hơn để gỡ lỗi và duy trì.
Một tùy chọn khác trong trường hợp phạm vi đó là vấn đề bạn có thể sử dụng Số liệu được đặt tên theo số ví dụ:
//setting
LocalDataStoreSlot lds = System.Threading.Thread.AllocateNamedDataSlot("foo");
System.Threading.Thread.SetData(lds, "SomeValue");
//getting
LocalDataStoreSlot lds = System.Threading.Thread.GetNamedDataSlot("foo");
string somevalue = System.Threading.Thread.GetData(lds).ToString();
Đây chỉ là một ý tưởng tốt nếu bạn không thể làm những gì James Kovacs và AdamSane mô tả
Nếu bạn sử dụng Net 4.0 hoặc cao hơn, như xa như tôi biết, cách khuyến cáo là sử dụng System.Threading.ThreadLocal<T>
cũng cho phép khởi tạo lười biếng làm tiền thưởng.
Phương pháp này cũng không giới hạn ở các trường tĩnh. –
- 1. Xóa kho lưu trữ cabal cục bộ
- 2. Kho lưu trữ cục bộ ở đâu?
- 3. Nhận địa chỉ IP cục bộ
- 4. Lưu trữ cục bộ HTML 5
- 5. Lưu trữ nhiều trang web cục bộ bằng XAMPP
- 6. Di chuyển kho lưu trữ Mercurial cục bộ sang Bitbucket
- 7. Kho lưu trữ cục bộ Maven trong settings.xml vs pom.xml
- 8. lưu trữ dữ liệu cục bộ trên iphone
- 9. Sử dụng kho lưu trữ Git cục bộ với kho lưu trữ Subversion chính
- 10. (HTML 5) Dung lượng lưu trữ cục bộ quá nhiều?
- 11. Git vô hiệu đẩy từ kho lưu trữ cục bộ
- 12. Đẩy từ kho lưu trữ cục bộ sang GitHub được lưu trữ từ xa
- 13. Đẩy vào kho lưu trữ git được lưu trữ cục bộ qua HTTP
- 14. Lưu trữ liên tục (WebSQL và lưu trữ cục bộ) trong iOS 6 w/PhoneGap
- 15. Composer - sử dụng kho lưu trữ cục bộ
- 16. AppCache = Application Cache = Lưu trữ cục bộ của Web Storage?
- 17. Cơ sở dữ liệu để lưu trữ cục bộ
- 18. Lớp lưu trữ cục bộ cho Entity Framework?
- 19. Tôi nên lưu trữ địa chỉ IP cho MySQL?
- 20. Trang web hiển thị khác với địa chỉ máy chủ cục bộ và địa chỉ IP
- 21. Lấy địa chỉ IP cục bộ bằng hàm getaddrinfo() C?
- 22. địa chỉ trở về của biến cục bộ trong C
- 23. Sao lưu kho lưu trữ của Mercurial tại địa phương
- 24. chuyển đổi kho lưu trữ cục bộ maven thành kho lưu trữ từ xa
- 25. Các lọ lớp Delphi có lưu trữ cục bộ hoặc luồng cục bộ không?
- 26. Tạo một kho lưu trữ gói R cục bộ
- 27. pip cài đặt kho lưu trữ git cục bộ
- 28. Ẩn danh kho lưu trữ git cục bộ?
- 29. Lưu trữ cục bộ google chrome ở đâu?
- 30. Nhân bản kho lưu trữ Git cục bộ
Tôi có thể lưu trữ Danh sách các đối tượng tĩnh trên mỗi luồng với thuộc tính này không? –
@DainiusKreivys Có! Bất kể loại biến là gì, cá thể duy nhất của nó sẽ được duy trì trên mỗi chuỗi miễn là bạn đang sử dụng thuộc tính '[ThreadStatic]'. Tôi đã làm một bài kiểm tra nhanh bằng cách sử dụng '[ThreadStatic] danh sách tĩnh riêng foo = new List {20, 30};'. Sau đó, trên một thread khác, tôi khởi tạo biến foo tương tự với một danh sách chứa ba số nguyên và khi chuỗi đó kết thúc danh sách gốc của tôi chứa hai phần tử được đề cập bởi chuỗi chính vẫn nguyên vẹn. –
RBT