2010-11-19 29 views

Trả lời

9

Từ documentation:

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

Nói cách khác, không, phương pháp add không phải là chủ đề an toàn.

+3

+1 - đọc tài liệu thường là một khởi đầu tốt. –

0

Trải nghiệm gần đây (đau) khiến tôi nghĩ rằng nó rất, VERY thread không an toàn.

Tôi đã phân tích một vài tệp kết xuất chứa 7.4 triệu và 8,8 triệu trường hợp XElement không mong muốn thêm tương ứng. Tốt nhất tôi có thể xác định, chúng được tạo ra khi một số mã trông vô hại liên quan đến thao tác các nút con của một XElement (bao gồm gọi Add() trong một số trường hợp) được gọi từ hai luồng thread cùng một lúc.

Điều này không quá bất ngờ - XElement và các lớp liên quan được triển khai bằng cách sử dụng các cấu trúc giống như danh sách liên kết và nếu bạn tranh giành liên kết tham chiếu đến nhiều kết quả lạ có thể xảy ra - vòng lặp, đoạn không tách rời, v.v.

Các vấn đề liên quan