从被调用的方法启动Producer-Tasks?

时间:2012-02-14 08:29:48

标签: c# task producer-consumer

我在任务方面有点新,必须在这里解决问题。我经常得到一个int和一个浮点数(大约每隔10ms),它们最初从一个常量数据流中过滤掉,然后由不同的算法处理。我想将它们堆叠到BlockingCollection中以具有ConsumerProducer模式,以便我进一步处理这些数据。我想启动几个Producer和Consumer但我被困在这里,因为我不知道如何处理这些常量数据流。我的方法就像:

public void Store(int iChannel, float fValue)
{
    producer = new Task(() => { BundleAndPutOnMyBlockingCollection(iChannel, fValue);
}

...很明显,这给了我大量的任务,因为不断调用Store()。我尝试使用mytask.status进行处理但失败了。有人能给我一个如何处理这个问题的提示吗?最好的是拥有可扩展的任务数量,例如,用100来测试。感谢。

1 个答案:

答案 0 :(得分:0)

嗯,你永远不会开始任务,所以没有任何东西会以这种方式结束阻塞集合......但是我不清楚你为什么要在这里完成任务所有。为什么您的Store方法不直接将其添加到阻止集合中?你可能想要消费者的任务,但这是另一回事。