我真的不太了解任务和线程。我在三个嵌套级别中有一个方法for
,我想在不同的线程/任务中多次运行,但是我传递给该方法的变量发疯了,让我用一些代码解释一下:
List<int> numbers=new List<int>();
for(int a=0;a<=70;a++)
{
for(int b=0;b<=6;b++)
{
for(int c=0;b<=10;c++)
{
Task.Factory.StartNew(()=>MyMethod(numbers,a,b,c));
}
}
}
private static bool MyMethod(List<int> nums,int a,int b,int c)
{
//Really a lot of stuff here
}
这是巢,myMethod
真的做了很多事情,比如计算一些数字的阶乘,写入不同的文档,用组合列表匹配响应以及调用其他小方法,它也有一些返回值(布尔值),但我暂时不用管他们。问题是没有任务结束,就像每次嵌套调用它自己刷新的方法一样,删除以前的实例。它还会给出一个错误,“尝试除以 0”,例如,值超过由 FOR 分隔的值,a=71, b=7, c=11
并且所有变量都为空(这就是除以零的原因)。我真的不知道如何解决它。