我对使用队列和线程有一些疑问。我已经做过研究,但我无法理解一般的功能。
我想做什么:我有一个名为“mTask”的类,其中有属性和方法,称为“StartmTask”。当我创建一个新的mTask时,我将它添加到List。
当列表中有mTasks时,我想处理mTask。 (我必须在计算机的每个免费处理器上启动任务)
我不明白我应该怎么做......我觉得这很“简单”,但实际上我迷失了。 是否有人能够尽可能简单地解释它?
非常感谢,我一直在寻找,如果我不够清楚,或者如果您需要更多信息,请不要犹豫。
Yowan
答案 0 :(得分:0)
我认为最好和最简单的解决方案可能是将mTask放到ThreadPool而不是你必须要观察的列表。
看一下方法
<强> ThreadPool.QueueUserWorkItem 强>
示例:
ThreadPool.QueueUserWorkItem(new WaitCallback(DoWork), )mTask);
private void DoWork(object o)
{
task = o;
}
如果您使用它,没有任何设置,则将线程分配给每个cpu。你不必关心它。