Ma question porte sur un code Parallel.ForEach qui fonctionnait sans cesse, et maintenant que notre base de données est 5 fois plus grande, elle se brise presque régulièrement.Parallel.ForEach lance une exception lors du traitement de très grands ensembles de données
Parallel.ForEach<Stock_ListAllResult>(lbStockList.SelectedItems.Cast<Stock_ListAllResult>(), SelectedStock =>
{
ComputeTipDown(SelectedStock.Symbol);
});
La méthode ComputeTipDown() obtient tous les stocks de données quotidienne tic pour le symbole, et passer dans chaque jour, obtient les données d'hier et les met quelques calculs et insère ensuite dans la base de données pour chaque jour. Nous utilisons rarement ceci pour recalculer des valeurs de données statiques quand une formule change.
L'exception est la suivante:
La base de données que nous frappons a 16 Go de RAM et est un dual-core quad et personne utilisait le système alors que je RECALCUL. La machine qui exécute l'application pour régénérer le code est un ordinateur portable avec 12 Go de RAM avec un noyau octal hyper-threaded. Il n'y avait donc pas de conflit de ressources évident.
Ceci est mon incursion dans l'utilisation de .NET 4 et le traitement parallèle, donc je me demande s'il y a quelque chose qui me manque. Toutes les pensées seraient les bienvenues.
toute solution avec le code source complet? – Kiquenet