求助: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#