因为有多个线程一起读写这个对象
foreach执行的时候是不允许修改内容的,这样写入就会报错,还有别的更好的枚举方法吗?

解决方案 »

  1.   

    多个线程一起读写一个对象的时候
    应该Lock这个对象吧? 
      

  2.   

    foreach只能有与只读的.
    你可以该成for或者while
      

  3.   

    Hashtable hashtable = new Hashtable();
    Lock(hashtable)
    {
        foreach(..........)
    }
      

  4.   

    可以看Hashtable的GetEnumerator()方法,这个也可以遍历。
      

  5.   

    多线程 操作对象时,需要考虑资源竞争、死锁等状态。还好 dotnet 已经为我们作了很多事情了。
    可以使用 Mutex、Monitor、Lock 等进行操作。详细信息请查阅 MSDN