Hoặc bạn có nên tạo một số đối tượng khóa khác không?Bạn có thể khóa từ điển chung không?
6
A
Trả lời
14
Vâng, đúc nó vào một IDictionary và khóa trên .SyncRoot
:
Generic.Dictionary<int, int> dic = new Generic.Dictionary<int, int>();
lock (((IDictionary)dic).SyncRoot)
{
// code
}
Nhờ source này cho các thông tin.
Tất nhiên, từ điển an toàn theo chủ đề cũng sẽ đẹp, như những người khác đã đề xuất.
1
Bạn có thể khóa trên bất kỳ đối tượng nào bạn muốn (ngoại trừ loại giá trị). Đó là được đề xuất mặc dù khóa trên đối tượng .SyncRoot.
Các vấn đề liên quan
- 1. Tôi có thể tạo một từ điển các loại chung?
- 2. Sử dụng một đối tượng làm khóa Từ điển chung
- 3. Danh sách chung/Từ điển
- 4. Bạn có sử dụng NSLocalizedString làm khóa trong từ điển không?
- 5. Ca cao: Từ điển có khóa enum?
- 6. Có thể tạo một từ điển có khóa yếu trong C# không?
- 7. Lớp chung tĩnh như từ điển
- 8. Tôi có thể sử dụng Danh sách các đối tượng làm Khóa Từ Điển không?
- 9. Có thể thực hiện đối sánh chuỗi một phần trên khóa chuỗi từ điển không?
- 10. Tôi có thể sử dụng các phần tử từ điển làm đối tượng khóa không?
- 11. Từ điển 2d có nhiều khóa cho mỗi giá trị
- 12. Hunspell - Không thể mở tệp từ hoặc tệp từ điển cho từ điển có tên en_US
- 13. Tôi có thể truy cập các giá trị khóa cụ thể trong từ điển từ mẫu django không?
- 14. Bạn bè trong C++ có chung không?
- 15. Tôi có thể có thuộc tính [] chung này không?
- 16. Tại sao bạn không thể sử dụng null làm khóa cho Từ điển <bool ?, string>?
- 17. Thay đổi Khóa của Từ điển
- 18. Làm thế nào để chuyển đổi từ điển chung thành không chung chung mà không liệt kê?
- 19. Loại từ điển có thứ tự khóa được xác định
- 20. Lưu từ điển có khóa là tuples với json, python
- 21. .NET - Khóa từ điển so với ConcurrentDictionary
- 22. Từ điển với Func là khóa
- 23. Đổi tên một khóa từ điển
- 24. Từ điển có hai phím?
- 25. Tạo một từ điển Python chứa cặp khóa-giá trị cụ thể từ các từ điển khác
- 26. Xóa Khóa khỏi Từ điển bằng tên khóa
- 27. Bạn có thể sử dụng từ khóa params trong một đại biểu không?
- 28. Lớp Từ điển Quan sát Chung cho DataBinding/WPF C#
- 29. Bạn có thể xuất các hàm chung của Ada sang C++ không?
- 30. Từ điển có thể tuần tự hóa, cách đặt tên khóa?
Câu trả lời này đã được chấp nhận, nhưng bất kỳ ai đọc điều này cũng nên xem xét điều này ví dụ: http://stackoverflow.com/questions/327654/hashtable-to-dictionary-syncroot. SyncRoot không phải là cách tốt nhất để khóa các bộ sưu tập. – AFract
Tôi nhận ra câu trả lời này là cũ. Chỉ muốn nói với bạn rằng liên kết đã chết. –
Tốt hơn là không sử dụng "SyncRoot", đó là vấn đề thiết kế của nhóm .net, sử dụng Khóa (_lockObject) để thay thế. –