多线程操作,线程数蛮多的用lock锁定一个ArrayList然后出现一个很奇怪的问题。我按F10步进,没问题,但是按F5直接执行就会卡死。。还有,如果我再一个地方设置 Thread.Sleep(100),它也不会卡死了。。
这是什么问题呢?线程数太多了还是什么?(我创建了一个循环,如果线程数太多,等待前面的运行完才添加新的线程,这样也不行)

解决方案 »

  1.   

    还有,如果我再一个地方设置 Thread.Sleep(100),它也不会卡死了。。线程一定要设置sleep, 特别是循环的, 因为他不间断, 占用所有的CPU, 所以多sleep 1秒就解决了
      

  2.   

    用lock锁定一个ArrayList
    -----------
    对了...注意这里,有可能死锁...
      

  3.   

    什么叫死锁?我看MSDN ,里面说不要直接锁定pubilc,否则会造成死锁
    里面说用ArrayList的SyncRoot
    就是 
    lock(ArrayList.SyncRoot)
    {
        dosomething();
    }
    但是这样还是卡死