네트워크를 통해 원격 사이트에 연결하고 일반 목록을 반환하는 여러 기능을 실행하려고합니다. 하지만 동시에 실행하고 싶습니다.
예를 들면 :
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;
}
내가보기에 '결과'에 대한 여러 삽입이 동시에 발생할 수 있습니다. 이로 인해 애플리케이션이 중단 될 수 있습니다.
이것을 어떻게 피할 수 있습니까?