我打算在DataTable上使用Parallel.ForEach,以便可以将每条记录写入文件。
我们如何通知用户处理的记录的百分比/数量。
通常,当我们使用Background worker时,我们会有一个ProgressChanged事件,用户会收到完成工作百分比的通知。我们如何使用Parallel.ForEach或Multiple tasks来实现这一目标?
谢谢,兔子
答案 0 :(得分:2)
我遇到过类似的问题。我们要解决的问题是对所有线程和UI都可见的数字使用Interlocked.Increment
,并根据该数字显示进度条。
编辑:
请注意,如果您的计数器是long
,则需要使用Interlocked.Read
进行阅读。如果您使用的是int,则该进程已经是原子的。
答案 1 :(得分:2)
您将需要一个(共享)计数器,该计数器从0开始,并且您在每个部分的 end 处递增(使用Interlocked)。
然后你需要
选项2)更容易,效率更高。