【发布时间】:2016-03-12 17:27:45
【问题描述】:
我有这个简单的功能,作为一项任务工作,只打印数据集的值。我从主函数和索引传递数据集。问题是我只填充了 2 个数据集索引,但是该函数总是向前跳一个,即在最后一次迭代中,它希望开始读取索引 2,该索引未初始化,因此是异常。
for (int i = 0; i < 2; i++)
{
tasks.Add(Task.Factory.StartNew(() => {
int a = i;
showNodeID(dataSet,a);
}));
}
函数是
private static void showNodeID(DataSet[] ds, int a)
{
Console.WriteLine(a.ToString());
Console.WriteLine(ds[a].GetXml());
} //END
在最后一次迭代中,当我打印 1 但在函数中,如果我打印 a,它将是 2。
【问题讨论】:
标签: c# .net multithreading task-parallel-library