【发布时间】:2012-09-20 19:12:08
【问题描述】:
我试图通过让一个线程写入链接列表而另一个线程处理链接列表来加快速度。
由于某种原因,如果我将写入链表的方法变成一个任务,而从链表读取的方法是一个低优先级线程,则程序整体完成的速度要快得多。换句话说,我在这样做时会体验到最快的结果:
Task.Factory.StartNew( AddItems );
new Thread( startProcessingItems ) { Priority = ThreadPriority.Lowest }.Start();
while(completed==false)
Thread.Sleep(0);
也许是因为第一个任务比另一个线程做的工作多,这就是为什么如果我将第二个方法设置为低优先级,所有事情作为一个整体会更快地完成。
无论如何,现在我的问题是startProcessingItems 以 ThreadPriority = Lowest 运行。我怎样才能将其优先级更改为最高?如果我在该方法中创建一个新任务,它会以低优先级运行吗?基本上 startProcessingItems 以一个列表结束,一旦它有了这个列表,我想以最高优先级开始执行。
【问题讨论】:
标签: c# multithreading parallel-processing thread-priority