2012-01-23 30 views

Trả lời

10

Không, chúng không phải là chủ đề an toàn (không thực hiện khóa của riêng bạn).

Sử dụng một trong các bộ sưu tập Concurrent thay thế.

Thread-Safe Collections

Các namespace System.Collections.Concurrent cung cấp một số lớp học tập thread-safe nên được sử dụng ở vị trí của loại tương ứng trong System.Collections và namespace System.Collections.Generic bất cứ khi nào có nhiều chủ đề là truy cập vào bộ sưu tập đồng thời.

+1

Tôi tự hỏi tại sao chúng tôi không có một lớp concurentList –

+0

http://stackoverflow.com/questions/703990/why-is-c-sharp-list-not-thread-safe –

+0

http://blogs.msdn.com/ b/jaredpar/archive/2009/02/11/why-are-thread-safe-collections-so-hard.aspx –

3

Các tài liệu cho toàn bộ lớp List<T> có một phân khúc về an toàn chủ đề:

Công tĩnh (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 bảo đảm là luồng an toàn.

+1

Đúng như điều này có thể, đây là tài liệu hướng dẫn soạn sẵn mà hầu như mọi (nếu không phải mọi kiểu). . –

+0

Tốt để chỉ ra. Điều đó giải thích tại sao không có concurentList. Danh sách đã đồng thời. +1 –

+0

Thực tế là không. Không có chỉ báo nào là chủ đề an toàn. Danh sách dường như không chứa bất kỳ phương thức tĩnh nào. –