【发布时间】:2010-10-17 11:12:34
【问题描述】:
我有以下相当简单的场景: 一些数据需要写入可以分区的数据库(相当大的集合)。但是我有两个问题:
简单的一个:希望有一个打印进度条的选项,以便不时知道到目前为止插入了多少条记录(线程之间共享计数器)。
更难的一个:每条记录都需要附有时间戳。时间戳具有开始时间和间隔。不幸的是,时间戳不是记录的一部分,但在顺序编程中,可以通过将当前时间戳增加特定间隔来简单地计算。
到目前为止,问题是:如何正确实现上述约束?是否有可能以某种方式将循环体与促进迭代时正在执行的代码分开(++i 或 newTimeStamp = oldTimeStamp.AddSeconds(...),这样这种代码将始终在单个线程上执行,这与循环体相反并行化?如果可能,代码 sn-p 将非常有帮助,尽管我很乐意获得任何指针/名称/关键字。谢谢。
【问题讨论】:
-
数据库和网络听起来像是你的瓶颈......你有基准测试吗?
-
你说的很对。基准已尽快计划。
标签: c# multithreading parallel-processing task-parallel-library