C# 多线程运用
没有用过多线程,所以没有过多的了解操作原理以及怎么编写多线程
后来才只知道将一个传入的集合分别拆开为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++; } }
不忘初心,方得始终