您的位置:首页 > 编程语言 > C#

C#多线程分配

2015-07-22 10:05 435 查看
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的,如果需要返回数据,那你要考虑下并发问题
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: