using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
List<string> list = new List<string>();
list.Add("a1");
list.Add("a2");
list.Add("a3");
list.Add("a4");
list.Add("a5");
list.Add("a6");
list.Add("a7");
list.Add("a8");
list.Add("a9");
list.Add("a10");
list.Add("a11");
list.Add("a12");
int splitNum = list.Count / 10 + (list.Count % 10 == 0 ? 0 : 1);//获取每个线程应该处理多少数据
Parallel.For(0, 10, index =>
{
for (var i = 0 + index * splitNum; i < splitNum * (index + 1); i++)
{
if (i >= list.Count) { break; }//判断索引范围是否已超出list的总数量
Console.WriteLine(list[i]);//这就是获取到的对象
}
});
//Parallel有好几个重构方法,这里举例用的是Action的,如果需要返回数据,那你要考虑下并发问题
}
}
}C#多线程分配
最新推荐文章于 2025-09-11 12:23:08 发布
本文展示了如何使用C#的Parallel For循环来高效地处理列表元素,特别是通过计算每个线程应该处理的数据数量来实现并行处理。通过实例代码说明了如何将大型任务分解为多个小任务,分配给不同的线程进行处理,从而提高程序执行效率。
288

被折叠的 条评论
为什么被折叠?



