C# System.ArgumentOutOfRangeException';发生在mscorlib.dll中,但未在用户代码中处理索引超出范围

C# System.ArgumentOutOfRangeException';发生在mscorlib.dll中,但未在用户代码中处理索引超出范围,c#,multithreading,winforms,c#-4.0,datatable,C#,Multithreading,Winforms,C# 4.0,Datatable,获取: “mscorlib.dll中发生“System.ArgumentOutOfRangeException”类型的异常,但未在用户代码中处理该异常 索引超出范围。必须为非负且小于集合的大小。“ 在 当我尝试重复执行这段代码时,我遇到了上述异常,不过resD.Table包含在条件中指定的表名。非常感谢您的帮助。这是if条件:if(resD.Tables.Contains(ReDo.TableName)){{u result=resD.Tables[ReDo.TableName];}您已经用多线

获取:

“mscorlib.dll中发生“System.ArgumentOutOfRangeException”类型的异常,但未在用户代码中处理该异常
索引超出范围。必须为非负且小于集合的大小。“


当我尝试重复执行这段代码时,我遇到了上述异常,不过resD.Table包含在条件中指定的表名。非常感谢您的帮助。

这是if条件:if(resD.Tables.Contains(ReDo.TableName)){{u result=resD.Tables[ReDo.TableName];}您已经用多线程标记了这个问题。这是否意味着您有单独的线程以某种方式操作resD数据集?@Silvermind,是的,这是一个输入错误,已更正。只有在测试和读取表之间,其他线程删除或重建了数据集,才会发生这种情况。我猜不出你的整个人生会发生什么code@Sachin谁说写多线程应用程序很容易。。。
if (resD.Tables.Contains(ReDo.TableName))
{
    _result = resD.Tables[ReDo.TableName];
}