Stringbuilder用于Parallel.Foreach循环
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Stringbuilder用于Parallel.Foreach循环相关的知识,希望对你有一定的参考价值。
在我的代码中,有一个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变量,它可以作为并行运行的每个线程的私有对象。
以上是关于Stringbuilder用于Parallel.Foreach循环的主要内容,如果未能解决你的问题,请参考以下文章
java.lang.StringBuilder和java.lang.StringBuffer
C#使用ObjectPool提高StringBuilder性能
使用 DLL 将 C# StringBuilder / 字符串传递给 C++ char*