还有,线程不是越多越好,跟CPU内核数量有关,据说内核*2或内核*2+2个线程效率最高就好比,你家楼道一共就那么宽,10个工人就正好够了,你雇1000个工人,其中100个工人从1楼到6楼全挤满了,还有900个在楼下等着进不去.

解决方案 »

  1.   

    比如先将任务放到list里(或datatable),选一种自己熟悉并能放进你的数据的格式,不能是数组,必须能动态增加删除的然后把数据放进去然后循环,开N个线程每个线程到队列里取数据(取第一条),取出来先放临时变量里(局部变量),然后队列第一条数据删除
    然后开始执行计算(已经在局部变量里了)就这样,每个线程都执行同样的操作.取值和删除的地方加个lock(L){代码段},避免多线程同时取造成数据错乱
    L可以是全局静态任意类型的变量,一般随便定义个public static object L=new object()就可以了