Estoy tratando de ejecutar múltiples funciones que se conectan a un sitio remoto (por red) y devolver una lista genérica. Pero quiero ejecutarlos simultáneamente.Parallel.ForEach con agregar a la lista
Por ejemplo:
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;
}
Tal como lo veo, múltiples inserciones a 'resultados' pueden acaecer al mismo tiempo ... ¿Qué se puede bloquear mi solicitud.
¿Cómo puedo evitar esto?
Qué versión .NET está usando? – sll
Tendría que ser al menos .Net 4; Paralelo fue presentado allí. – arootbeer