Tôi đang cố gắng 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 đồng thời.
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 thấy, nhiều lần chèn vào 'kết quả' có thể xảy ra cùng lúc ... Điều này có thể làm ứng dụng của tôi bị hỏng.
Làm thế nào tôi có thể tránh điều này?