【问题标题】:Problem understanding Queue, parallelism and threading问题理解队列、并行和线程
【发布时间】:2011-02-17 09:56:22
【问题描述】:

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

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

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

我不明白我应该怎么做...我认为这很“简单”,但我实际上迷路了。 有没有人能尽可能简单地解释一下?

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

尤文

【问题讨论】:

标签: c# wpf queue parallel-processing


【解决方案1】:

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

看看方法

ThreadPool.QueueUserWorkItem

例子:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-10
    • 2010-10-07
    • 2011-09-27
    相关资源
    最近更新 更多