你好人我有问题在线程中使用参数。问题是我把一个对象List<object>
作为线程数组的一个参数,迭代到列表列表(List<List<Object>>
)的foreach循环中,并且有时它会复制参数(我已经检查过在我放置它之前是否有重复的对象在一个线程中)。我的代码是这样的。有谁知道什么是错的?在此先感谢线程C中的重复参数#
foreach (List<object> list2 in list1)
{
threads[i] = new Thread(() =>DoWork(list2, nRetorno));
threads[i].Name = "thread " + i;
threads[i].Start();
Thread.Sleep(5);
i++;
}
这一个涵盖完全相同的问题,因为你几乎相同的示例代码 - http://stackoverflow.com/questions/8898925/is-there-a-reason-for- cs-reuse-the-the-variable-in-a-foreach/8899347#8899347。它涵盖了一些关于'foreach'和关闭的细节(与重复相同)。 – 2014-09-10 22:00:25
感谢您的回答..我以为我是与线程错误..但这显然是主要问题..与更多的罪恶后果 – hexehell00 2014-09-10 22:43:11