当前位置:编程学习 > C#/ASP.NET >>

求助:System.InvalidOperationException:修改集合 ; 枚举操作可能无法执行

我写了一个多线程的程序,主线程负责网hash表里面,写东西,付线程负责定时将hash表里面的东西读出并写入硬盘,出现在如下错误:
System.InvalidOperationException: 修改集合 ; 枚举操作可能无法执行。 
我已经在付线程读取hash的时候调用了lock函数,代码如下;
lock(obj)
{
for (int i=0; i<nPortCountLen; i++)
{
iloIpListArray[i].m_nVisitCount = pcoPortCountArray[i].nCount;
iloIpListArray[i].m_strRecvIpList = new string[((Hashtable)pcoPortCountArray[i].htoIpTimeHash).Count];
k = 0;
foreach (DictionaryEntry myde in (Hashtable)pcoPortCountArray[i].htoIpTimeHash)
{
iloIpListArray[i].m_strRecvIpList[k] = (string)myde.Key;
k++;
}
}
}
请高手指点,谢谢!! --------------------编程问答-------------------- 在主线程执行时,枚举发生了变化 --------------------编程问答-------------------- 这个我知道,那怎么在付线程锁定hash,从而让主线程不改变hash,请指点!! --------------------编程问答-------------------- 给大家介绍个技术群

大家一起学习,一起提高

32517994
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,