Tôi cần tạo một danh sách các mục an toàn chỉ để thêm vào chỉ mục lucene.Xếp hàng an toàn (danh sách) trong .net
Chủ đề sau có an toàn không?
public sealed class IndexQueue
{
static readonly IndexQueue instance = new IndexQueue();
private List<string> items = new List<string>();
private IndexQueue() { }
public static IndexQueue Instance {
get { return instance; }
}
private object padlock = new object();
public void AddItem(string item) {
lock (padlock) {
items.Add(item);
}
}
}
Cần khóa ngay cả khi nhận các mục từ danh sách nội bộ?
Ý tưởng là sau đó chúng tôi sẽ có một nhiệm vụ riêng biệt chạy để lấy các mục từ indexqueue và thêm chúng vào chỉ mục lucene.
Cảm ơn Bến
Có các chủ đề an toàn trong .NET 4 (nếu bạn thậm chí có thể sử dụng 4), không chắc liệu bạn có biết hay không, như tôi thấy bạn đang cuộn ... http: //msdn.microsoft.com /en-us/library/system.collections.concurrent.aspx –
Xin cảm ơn các bạn. Sẽ có một cái nhìn tại System.Collections.Concurrent –
Tôi không nghĩ rằng 'System.Collections.Concurrent' sẽ hữu ích cho bạn. Không có 'List' tương đương và thậm chí nếu có bạn vẫn có thể phải áp dụng khóa của riêng bạn để làm cho việc liệt kê các mục là nguyên tử.Nó thực sự phụ thuộc vào cách bạn muốn liệt kê được cảm nhận bởi nhiều chủ đề. –