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#多线程分配
最新推荐文章于 2024-08-02 16:41:19 发布