我的问题是这样的,C#我用LIST链表存一些东西,
在一个线程里读,加一个线程是删除,我发现,删除的时候链表会删除当前的位,然后把后面的往前推。但是另一个线程里无法同步呀,会抛异常,因为中间删了一个,读的时候循环到最后的时候有可能就会抛异常,请大家帮忙想想,看看怎么解决

解决方案 »

  1.   

    加个读写锁
    ReaderWriterLockSlim
      

  2.   

    我很多地方和线程都用到了这个LIST的读,每一个都加吗
      

  3.   

    想偷懒
    换一个线程安全的列表类
    或者直接使用lock简单很多
      

  4.   

    有没有什么更好办法,我这样读会出问题            for (int i = 0; i < g_CTList.Count; i++ )  但是我从网上看 for (int i = g_CTList.Count; i >= 0; i--) 这样读就会没问题,但是我想不通的是,如果在中间删除一个,会读重复呀,比如 g_CTList.Count = 10 我在读的时候,在CTList[5]被删除时,我读到在CTList[5]时,不 就是又读了一遍在CTList[6]?(因为在刚读的时候list没有改变,读一半的时候,被删除,前移),求各位帮忙解读下,谢谢
      

  5.   

    lock我看了一些,但是不太会用,很惭愧呀,编程底子太差,正在学习呀
      

  6.   

    关于lock的
    http://www.cnblogs.com/qiantuwuliang/archive/2009/12/27/1633508.html