首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

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

2014-01-28 
我写了一个程序,主线程负责hash表里面写东西,付线程负责定时将hash表里面的东西读出和获取的对比,如果重复

我写了一个程序,主线程负责hash表里面写东西,付线程负责定时将hash表里面的东西读出和获取的对比,如果重复就抛弃,如果不重复就保留,出现在如下错误:
在:DictionaryEntry dt in HasTabOut抛出:
System.InvalidOperationException:修改集合;枚举操作可能无法执行。的异常。
代码如下:
public bool CheckOut(string data)
  {
  bool Ret = false;//判断数据是否重复默认为否
  DateTime Dtime = DateTime.Now;
  string Gdata = data;
 
  int Sct = 0;

  if (HasTabOut != null)
  {
  foreach (DictionaryEntry dt in HasTabOut)  ///抛出异常的地方!!
  {
  Sct = Dtime.Subtract(DateTime.Parse(dt.Key.ToString())).Seconds;
  if (Sct > 5)
  {
  //如果数据存在时间大于五秒,则删除数值
  HasTabOut.Remove(dt.Key);
    }
  }
  foreach (DictionaryEntry dt in HasTabOut)
  {
  Sct = Dtime.Subtract(DateTime.Parse(dt.Key.ToString())).Seconds;
  //如果时间小于等于五秒,且有值返回
  if (Gdata == dt.Value.ToString() && Sct <= 5)
  {
  Ret = true;
  break;
  }         

热点排行