日期:2014-05-17  浏览次数:20820 次

问个关于线程池的傻缺问题
是不是 QueueUserWorkItem 一个任务 就只分配 一个线程?

------解决方案--------------------
恩,一次QueueUserWorkItem只能加一个回调。但是可以加多次啊
C# code

           var sum1 = 0;
            var eh1 = new ManualResetEvent(false);
            ThreadPool.QueueUserWorkItem(h =>
            {
                for (var i = 2; i <= 100; i += 2)
                    sum1 += i;
                eh1.Set();
            });
            var sum2 = 0;
            var eh2 = new ManualResetEvent(false);
            ThreadPool.QueueUserWorkItem(h =>
            {
                for (var i = 1; i <= 100; i += 2)
                    sum2 += i;
                eh2.Set();
            });
            WaitHandle.WaitAll(new WaitHandle[] { eh1, eh2 });