解决方案 »

  1.   

    http://www.csharpwin.com/csharpspace/8943r4265.shtml
      

  2.   

    //设置线程池数目
                ThreadPool.SetMaxThreads(500, 100);//不宜设置过大
                int minWorker, minIOC;
                ThreadPool.GetMinThreads(out minWorker, out minIOC);//获取电脑最小设置
                ThreadPool.SetMinThreads(100, minIOC);
      

  3.   

    所有使用的地方都用ThreadPool.QueueUserWorkItem(new WaitCallback(方法),参数);即可
      

  4.   

    所有使用的地方都用ThreadPool.QueueUserWorkItem(new WaitCallback(方法),参数);即可 楼主注册不同的线程回调,或者通过传递不同的参数分别调用不同的业务就是了
      

  5.   


    我是想控制不同的业务能有不同的并发运行线程数量. 比如业务A, 同时有5个线程运行. 业务B,同时有10个线程运行. 如果用ThreadPool好像没办法控制.
      

  6.   


    我是想控制不同的业务能有不同的并发运行线程数量. 比如业务A, 同时有5个线程运行. 业务B,同时有10个线程运行. 如果用ThreadPool好像没办法控制.
      

  7.   


    任务A 和B 都是有很多任务要做,所以需要用线程池. 因为A和B 需求的资源不同,所以会限制任务的最大线程数量. 比如A最多只能开3个线程, B 最多只能开7个线程. 如果我用一个线程池, 开10个线程, 就无法将任务的实际运行线程数量控制在该任务的最大线程之下. 所以我想给每个任务开一个独立的线程池.
      

  8.   

    你可以考虑使用任务并行库(MSDN)来代替线程池。
      

  9.   

    试试fastCSharp的fastCSharp.threading.task,用完以后要记得Dispose()            fastCSharp.threading.task task1 = new fastCSharp.threading.task(5);
                fastCSharp.threading.task task2 = new fastCSharp.threading.task(10);
                task1.Add(...);
                task2.Add(...);
      

  10.   

    已经在用SmartThreadPool了,谢谢各位.