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

多线程循环,我怎么感觉哪里不对?

 static void Main(string[] args)
        {
            for (var i = 0; i < 5; i++)
            {
                Thread thread = new Thread(new ParameterizedThreadStart(ThreadMainWithParameters));
                thread.Start(i);
            }
            Console.ReadKey();
        }

        public static void ThreadMainWithParameters(object num)
        {
            var list =productService.GetALL();//这里获取数据集,
            lock (obj)
            {
                foreach (var i in list)
                {
                    Console.WriteLine(i.name);
                    Thread.Sleep(500);
                    //list.Remove(i);//foreach是只读的,不可移除啊,
                }
            }

我想创建5个线程,每个线程带不同的参数去处理同一个数据集,简单的说,有一堆箱子(数据集),我找5个人来搬,每人搬一个箱子后,会休息一下,继续搬。
多线程 C# 数据

------解决方案--------------------
productService.GetALL,做成GetNext会好一点,并把Look放这里去。
ThreadMainWithParameters() 就专心处理数据