QuoteCache.count=5000+ 是啥情况,你把源内容的空间变更了吧,keys这个的长度还是没变更前的,估计空间不够越界了
QuoteCache是一个Hashtable的集合,具体流程是:接收别人的实时数据填充到hashtable中,另外new了一个线程将HashTable中的数据取出来填充到dataTable中。其中根据一个Key值标记是新增还是更新数据,
因为HashTable不能使用foreach循环的,说以将它的Keys集合复制到ArrayList中。这种问题要怎么解决。谢谢了!
有没有解决思路!
@唯恐: 你上面的描述,估计是并发的问题,你可以先用1个线程试试
@2012: 我加锁后倒是不报错了,但是程序不Debug运行的时候还是卡死,也没见报错,debug的时候也没报错。有什么方式检测吗?
@唯恐: 锁用的不对,死锁了可能。
Hashtable实现了IEnumerable怎么可能不能遍历呢?
foreach(DictionaryEntry de in yourHashtableInstance)
{
//....
}
因为在循环中还要修改集合中的数据,所以不能使用foreach。
@唯恐: 你要修改什么?修改value的话直接改就完了,用遍历去搞就不用用hash类的玩意了,直接List<Tuple<T1,T2>>