多线程时,我使用 foreach 来枚举集合出现该错误。。如:
foreach(MyClass obj dirObjects.Values)  // 就在这行出现了这个错误!
{
    //...
}
请问,该如何解决这个错误??跟线程锁有关吗?该怎么写??

解决方案 »

  1.   

    foreach{}时,要保证集合恒定不变的,不然指针会乱跑
    嘿嘿
      

  2.   

    lock(dirObjects)
    {
    foreach(MyClass   obj   dirObjects.Values)     //   就在这行出现了这个错误! 

            //... 
    }
    }试试行不行
      

  3.   

    哈哈,不行~~同时 lock(dirObjects.Values)  也试过了,还是不行``结果我采用 Mutex 里做互斥``暂时没发现错误``
    不知道有没有什么弊端``