在我的代码中,有一个foreach
循环,它遍历集合中的所有项目,并在StringBuilder
中附加文本以创建“.ics”文件。为了加快速度,我将foreach循环转换为Parallel.Foreach
循环。虽然性能得到了改善,但“.ics”文件中的文本是无序的,这会创建一个损坏的文件。
“.ics”文件中的预期文本示例=>
Begin:calendar
Begin:event1
.
.
End:event1
Begin:event2
.
.
End:event2
End:Calendar
使用parallel.foreach loop =>创建的“.ics”文件示例
Begin:calendar
Begin:event1
Begin:event2
.
.
.
.
End:Event1
End:Event2
有没有办法为集合中的每个项目创建一个唯一的StringBuilder
,然后在循环结束时加入它们以创建一个有序的字符串?
我在“Parallel.Foreach”循环中添加了一个新的StringBuilder变量,在循环结束时,新的StringBuilder变量的内容附加了主Stringbuilder变量。通过在循环内创建一个新的Stringbuilder变量,它可以作为并行运行的每个线程的私有对象。