问题理解队列,并行和线程

时间:2011-02-17 09:56:23

标签: c# wpf queue parallel-processing

我对使用队列和线程有一些疑问。我已经做过研究,但我无法理解一般的功能。

我想做什么:我有一个名为“mTask”的类,其中有属性和方法,称为“StartmTask”。当我创建一个新的mTask时,我将它添加到List。

当列表中有mTasks时,我想处理mTask。 (我必须在计算机的每个免费处理器上启动任务)

我不明白我应该怎么做......我觉得这很“简单”,但实际上我迷失了。 是否有人能够尽可能简单地解释它?

非常感谢,我一直在寻找,如果我不够清楚,或者如果您需要更多信息,请不要犹豫。

Yowan

1 个答案:

答案 0 :(得分:0)

我认为最好和最简单的解决方案可能是将mTask放到ThreadPool而不是你必须要观察的列表。

看一下方法

<强> ThreadPool.QueueUserWorkItem

示例:

ThreadPool.QueueUserWorkItem(new WaitCallback(DoWork), )mTask);

private void DoWork(object o)
{
    task = o;
}

如果您使用它,没有任何设置,则将线程分配给每个cpu。你不必关心它。