【发布时间】:2021-01-10 07:04:29
【问题描述】:
我正在尝试创建一个线程并将其添加到线程列表中:
int j = 0;
while(j!=6)
{
Thread th = new Thread(() => SaveImages(L104List[j], folderFilePath, bw));
ThreadList.Add(th);
j++;
//th.Start();
}
但是当 j 变成 6 时它并没有退出。所以它抛出了一个 s 异常:
附加信息:索引超出范围。必须是非负数且小于集合的大小。
但是,每当我尝试使用断点手动迭代循环时,它就会退出并转到下一个代码语句。为什么要这样做?
附言。我也试过for循环,它也这样做了。
【问题讨论】:
-
我猜
L104List可能少于集合中的 6 项。 -
@D-Shih 它的计数是 6,所以如果 j 给出 6,它会抛出异常,因为数组中的第 6 个是 5 对吗?
-
为什么不使用
L104List.Lenght > j作为条件?
标签: c# while-loop