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

C# 多线程运用

2016-01-30 15:44 597 查看
没有用过多线程,所以没有过多的了解操作原理以及怎么编写多线程

后来才只知道将一个传入的集合分别拆开为N个集合来进行使用

//分线程执行
public static void OperateThread(object Sales)
{
//Sales 传入的数据集合
List<TradeSales> sales=Sales as List<TradeSales>();
if(sales==null)
sales=new List<TradeSales>();
//指定线程数量
long ThreadCount=10;
//指定条数
long pagesize=1;
for(int i=0;i<ThreadCount;i++)
{
if((sales.Count+i)%ThreadCount==0)
{
pagesize=(sales.Count+i)/ThreadCount;
break;
}
}

HashTable ht=new HashTable();

long pageindex=1;
List<TradeSales> list1=new List<ThreadSales>();
List<TradeSales> list2=new List<ThreadSales>();
List<TradeSales> list3=new List<ThreadSales>();
List<TradeSales> list4=new List<ThreadSales>();
List<TradeSales> list5=new List<ThreadSales>();
List<TradeSales> list6=new List<ThreadSales>();
List<TradeSales> list7=new List<ThreadSales>();
List<TradeSales> list8=new List<ThreadSales>();
List<TradeSales> list9=new List<ThreadSales>();
List<TradeSales> list10=new List<ThreadSales>();

for(int i=0;i<sales.Count;i++)
{
swith(pageindex)
{
case 1: list1.Add(sales[i]);break;
case 2: list2.Add(sales[i]);break;
case 3: list3.Add(sales[i]);break;
case 4: list4.Add(sales[i]);break;
case 5: list5.Add(sales[i]);break;
case 6: list6.Add(sales[i]);break;
case 7: list7.Add(sales[i]);break;
case 8: list8.Add(sales[i]);break;
case 9: list9.Add(sales[i]);break;
case 10: list10.Add(sales[i]);break;
}

if(((i+1)%pageindex==0)|| (i+1)==sales.Count)
{
Thread th=new Thread(new ParameterizedThreadStart(ShouDongXiaZaiShangChengOrderParts));
switch(pageindex)
{
case 1: th.Start(list1);break;
case 2: th.Start(list2);break;
case 3: th.Start(list3);break;
case 4: th.Start(list4);break;
case 5: th.Start(list5);break;
case 6: th.Start(list6);break;
case 7: th.Start(list7);break;
case 8: th.Start(list8);break;
case 9: th.Start(list9);break;
case 10: th.Start(list10);break;
}
}

pageindes++;
}
}


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: