Tôi đang cố chạy nhiều chức năng kết nối với một trang web từ xa (theo mạng) và trả về một danh sách chung. Nhưng tôi muốn chạy chúng cùng một lúc.Parallel.ForEach với việc thêm vào danh sách
Ví dụ:
public static List<SearchResult> Search(string title)
{
//Initialize a new temp list to hold all search results
List<SearchResult> results = new List<SearchResult>();
//Loop all providers simultaneously
Parallel.ForEach(Providers, currentProvider =>
{
List<SearchResult> tmpResults = currentProvider.SearchTitle((title));
//Add results from current provider
results.AddRange(tmpResults);
});
//Return all combined results
return results;
}
Như tôi đã nhìn thấy nó, chọc kim nhiều lần để 'kết quả' có thể happend cùng lúc ... Mà có thể sụp đổ ứng dụng của tôi.
Làm cách nào để tránh điều này?
Phiên bản .NET bạn đang sử dụng? – sll
Nó sẽ phải có ít nhất .Net 4; Song song đã được giới thiệu ở đó. – arootbeer