Chr*_*son 4 c# parallel-processing multithreading
我有一个任务,该任务本质上循环遍历一个集合,并成对地对它们进行操作(对于int i = 0; i <limit; i + = 2等),因此,我在线程循环上看到的大多数建议都使用某种foreach机制。但这对我来说似乎有点棘手,因为我是如何使用这种成对操作的方法的。
所以我想做的基本上是替换:
DoOperation(list.Take(numberToProcess));
Run Code Online (Sandbox Code Playgroud)
与
Thread lowerHalf = new Thread(() => => DoOperation(list.Take(numberToProcess/2)));
Thread lowerHalf = new Thread(() => => DoOperation(list.getRange(numberToProcess/2, numberToProcess));
lowerHalf.Start();
upperHalf.Start();
Run Code Online (Sandbox Code Playgroud)
这似乎可以完成工作,但是非常慢。每次迭代都比上一次慢,并且在我调试时,“线程”视图显示越来越多的“线程”列表。
但是我给人的印象是线程在完成时就终止了?是的,线程确实完成了。DoOperation()方法几乎只是一个for循环。
那我在这里不明白什么呢?
| 归档时间: |
|
| 查看次数: |
4455 次 |
| 最近记录: |