高并发下,在Dictionary Add会出现索引超出范围。
一是改为静态锁。
二是将DICTIONARY改为ConcurrentDictionary吧。
建议采用第二个方案。
如果锁是个类字段,非静态。多个请求之间的锁不是同一个。
一是改为静态锁。
二是将DICTIONARY改为ConcurrentDictionary吧。
建议采用第二个方案。
如果有一部分数据是第一次load就不会改的,可以采用 Lock/UnLock模型
经测试
在我的机器上1000个线程同时add item,Dictionary 十几秒后就抛IndexOutOfRange了!而ConcurrentDictionary表现很好,一直能坚持到OutOfMemoery.
在iis下用字典做缓存一定要注意