我的问题集中在一些过去可以正常工作的 Parallel.ForEach 代码上,现在我们的数据库已经增长到原来的 5 倍,它几乎经常中断。
Parallel.ForEach<Stock_ListAllResult>( lbStockList.SelectedItems.Cast<Stock_ListAllResult>(), SelectedStock =>
{
ComputeTipDown( SelectedStock.Symbol );
} );
ComputeTipDown() 方法获取该交易品种的所有每日股票 tic 数据,并遍历每一天,获取昨天的数据并进行一些计算,然后将它们插入每天的数据库中。
当公式更改时,我们很少使用它来重新计算静态数据值。
例外是:
我们正在访问的数据库有 16 GB 的 ram,并且是双四核的,在我重新计算时没有人使用该系统。运行应用程序以重新生成代码的机器是一台笔记本电脑,具有 12 gigs 的 ram 和超线程八核。所以没有明显的资源争用。
这是我使用 .NET 4 和并行处理的尝试,所以我想知道我是否缺少某些东西。任何想法都会受到欢迎。