我有一个任务,基本上是遍历一个集合,并对它们成对进行操作(例如,for int i = 0; i < limit; i+=2等)。因此,我在线程循环方面看到的大多数建议都使用了某种foreach机制。但是,考虑到我使用成对操作的方法,这似乎有点棘手。
因此,我想做的就是替换:
DoOperation(list.Take(numberToProcess));
使用
Thread lowerHalf = new Thread(() => => DoOperation(list.Take(numberToProcess/2)));
Thread lowerHalf = new Thread(() => => DoOperation(list.getRange(numberToProcess/2, numberToProcess));
lowerHalf.Start();
upperHalf.Start();
这似乎可以完成工作,但速度非常慢。每次迭代都比上一次慢,当我进行调试时,线程视图显示了一个不断增长的线程列表。
但是我认为线程在完成后会自动终止?是的,线程确实完成了。DoOperation()方法基本上只是一个for循环。
那么我在这里没有理解什么呢?