我的这个集合中有关于很多用户的信息,每个人都可能正在更改自己的信息.
为了提高效率,我将集合对象改成Dictionary<TKey,TVale>.我以为Dictionary<Tkey,TValue>是线程安全的,所以多人操作就没做过多考虑.结果我发现,一旦有人改动后就无法遍历了.. 报的错为:"集合已修改;可能无法执行枚举操作"如何解决这个问题?
我在使用线程安全的hashtable时没有遇到这样的问题..
为了提高效率,我将集合对象改成Dictionary<TKey,TVale>.我以为Dictionary<Tkey,TValue>是线程安全的,所以多人操作就没做过多考虑.结果我发现,一旦有人改动后就无法遍历了.. 报的错为:"集合已修改;可能无法执行枚举操作"如何解决这个问题?
我在使用线程安全的hashtable时没有遇到这样的问题..
解决方案 »
- 寻求一款小规模系统使用的软件开发管理平台
- datagridview 无记录提示
- txt文件是动态更新的,如何读取更新部分
- 猜猜float temp = float.MaxValue + float.MaxValue; Console.WriteLine(temp);输出啥?
- 在xml中怎么根据id得到name的值,用C#实现 大神们求助啊
- 怎样获取HTML控件select选项的值?
- asp.net C# sql 2000开发数据库系统中遇到得问题:请教!!!
- 虽说只由5 条裤衩 。。。。 ;散分,鼓舞士气。。。
- C#错误提示无法在 System.Int32 和 System.String 上执行“=”操作”
- C# 记录日志问题,数据库事务修改时如何便捷获取修改数据的值?
- 大家好,问个简单问题
- 参数传递的问题
还有更新操作的时候不能用foreach遍历
List<string> lstCompleted = new List<string>();
foreach (KeyValuePair<string, RemoteTaskItem> kvp in queue)
{
if (kvp.Value.Status == 3) //要删除的记录
{
lstCompleted.Add(kvp.Key);
}
} for (int i = 0; i < lstCompleted.Count; i++)
{
queue.Remove(lstCompleted[i]);
}