Ich versuche, mehrere Funktionen auszuführen, die eine Verbindung zu einem Remotestandort (über das Netzwerk) herstellen, und eine generische Liste zurückzugeben. Aber ich möchte sie gleichzeitig ausführen.
Zum Beispiel:
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;
}
Aus meiner Sicht können mehrere Einfügungen in "Ergebnisse" gleichzeitig erfolgen ... Dies kann meine Anwendung zum Absturz bringen.
Wie kann ich das vermeiden?