gpt4 book ai didi

c# - 线程和 IndexOutOfRange 异常

转载 作者:太空宇宙 更新时间:2023-11-03 19:08:48 25 4
gpt4 key购买 nike

Note that in the locals i = 3

您可以清楚地看到 args[] 的最高索引是 2,但是迭代器不知何故达到了 3。解释一下?

编辑:评论的 Thread.Sleep 神奇地解决了这个问题。

最佳答案

这是由于 i 在 for 循环之外声明的,对于整个 for 循环。由于无法保证 Thread 在该点执行,因此 i 的值可以在 Thread 执行之前更改。您可以通过在 for 循环中声明一个局部变量来“解决”这个问题。

//for loop ..
var localIndex = i;
var temp = new Thread(() => PrintOut(args[localIndex], IsFilePath(args[localIndex])));
temp.Start();
//for loop ..

编辑:另外,下次能不能发个代码片段,省得我再写一遍代码:P

关于c# - 线程和 IndexOutOfRange 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22950751/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com