我試圖運行連接到遠程站點(通過網絡)的多個函數並返回一個通用列表。但我想同時運行它們。Parallel.ForEach添加到列表
例如:
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;
}
依我之見,多次插入到「結果」可以在同一時間...這可能會崩潰我的應用程序happend。
我該如何避免這種情況?
哪個.NET版本您使用的? – sll
它必須至少.Net 4;在那裏引入了並行。 – arootbeer