c#线程和foreach循环
本文关键字:循环 foreach 线程 | 更新日期: 2023-09-27 18:06:06
我有大量的记录需要循环对于粗略的数字,比如100,000条记录
当我循环遍历这些记录时,我需要做一些字符串操作并将该字符串保存到文本文件中。每条记录之间不共享数据,它们是独立的数据记录。
我想我可以通过使用多线程更快地完成这个任务?如果是这样,我将如何去做这个(与代码示例)?
我在想我不希望无限数量的线程同时运行,所以有没有办法启动有限数量的线程(一次10个线程),当我完成时启动另一个线程,直到所有100,000个线程完成?
如果你使用的是。net 4或更新版本,你可以使用并行任务库。只需要为LINQ
添加using语句using System.Linq;
using System.IO;
然后对每个使用并行。
Parallel.ForEach(this.CollectionOfStrings, str =>
{
// Append to file, or write to a new file if you are not appending
using (StreamWriter file = new StreamWriter(Path.Combine(somePath, str, ".txt")))
{
file.WriteLine(str);
}
});
它将并行地写每一行。如果您有100,000行,它不会创建100,000个线程,库可以确定要创建的最佳线程数量,并尽可能地旋转。