. Мой вопрос сосредоточен на некотором коде Parallel.ForEach, который работал без сбоев, и теперь, когда наша база данных выросла в 5 раз больше, она ломается почти регулярно.Parallel.ForEach вызывает исключение при обработке чрезвычайно больших наборов данных.
Parallel.ForEach<Stock_ListAllResult>(lbStockList.SelectedItems.Cast<Stock_ListAllResult>(), SelectedStock =>
{
ComputeTipDown(SelectedStock.Symbol);
});
Метод ComputeTipDown() получает все ежедневно акции тиков данных для символа, и итерации через каждый день, получает вчерашние данные и делает несколько вычислений, а затем вставляет их в базу данных для каждого дня.
Мы используем это редко, чтобы пересчитать статические значения данных при изменении формулы.
Исключение заключается в следующем:
В базе данных мы ударяя имеет 16 гигабайт оперативной памяти и двойной четырехъядерный, и никто не использовал систему в то время как я был перерасчета. Машина, запускающая приложение для восстановления кода, представляет собой ноутбук с 12 гигабайтами барана с восьмеричной восьмеричной резьбой. Таким образом, не было явного конфликта ресурсов.
Это мой набег на использование .NET 4 и параллельной обработки, поэтому мне интересно, есть ли что-то, чего я не вижу. Любые мысли будут приветствоваться.
любое решение с полным исходным кодом? – Kiquenet