(ネットワークによって)リモートサイトに接続し、汎用リストを返す複数の関数を実行しようとしています。しかし、私はそれらを同時に実行したいと思います。
例えば:
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;
}
私が見ているように、「結果」への複数の挿入が同時に発生する可能性があります...これによりアプリケーションがクラッシュする可能性があります。
どうすればこれを回避できますか?