索引超出了数组界限
在按钮的单击事件 button_Starts_Click 中,调试时打断点出现这个情况:当i的值为4时for循环执行完了之后,在这句 myResultTask.Wait();执行了之后居然又进入了for循环,我觉得有点奇怪。请指点一下,谢谢!代码很少,请看附件myResultTask.Wait();走到这等了好久 被卡住了 ibcadmin 发表于 2016-6-14 14:37
myResultTask.Wait();走到这等了好久 被卡住了
,
如图所示,调试时在这两行下断,发现出现这个情况:当i的值为4时for循环执行完了之后,在这句 myResultTask.Wait();执行了之后居然又进入了for循环,感觉太奇怪了
我调试了代码,发现的问题是,报错的时候 i=5 ,
所以myTokenSources的时候肯定是出现索引超出界限,myTokenSources是0-4
我现在也搞不懂 , i=5的时候 为什么会进for循环。
ibcadmin 发表于 2016-6-14 15:56
我调试了代码,发现的问题是,报错的时候 i=5 ,
所以myTokenSources的时候肯定是出现索引超出界 ...
是啊,很奇怪,还麻烦你帮我看看啊 ibcadmin 发表于 2016-6-14 15:56
我调试了代码,发现的问题是,报错的时候 i=5 ,
所以myTokenSources的时候肯定是出现索引超出界 ...
是啊,很奇怪,还麻烦你帮我看看啊 Task<string[]> myResultTask = Task.WhenAll<string>(myTasks);
myResultTask.Wait();
问题还是在这句话里,我把 myResultTask.Wait();删掉后能正常执行,我的个人观点是,你在循环中给 myTasks.Start(); 开启,是一个一个开启的。但是等待的时候,是批量等待的,所以觉得问题出在这,至于怎么解决....我就无能为力了.. ibcadmin 发表于 2016-6-15 12:33
Task myResultTask = Task.WhenAll(myTasks);
myResultTask.Wait();
哦,有一定道理。虽然很难解决,但是还是谢谢老大了!
页:
[1]