嗨,我有一个关于任务的简短问题。据我所知,任务本身可以启动多个线程。C#任务行为
比方说,我有两个硬件传感器,它们给我两个不同的数据端口上的数据。
我想在我的c#项目中将它们实现为生产者,然后对数据进行一些操作。在两个不同的任务中开始数据收集是否有意义?或者我应该实现他们在同一个任务,因为C#会自动把他们在不同的线程?
var producerWorker = Task.Factory.StartNew(() => SensorB(number));
var producerWorker2 = Task.Factory.StartNew(() => SensorA(number));
或
var producerWorker = Task.Factory.StartNew(() => Sensor_A_AND_B(number));
我的第二个问题是:当我在两个不同的任务两种不同的生产商,我怎么他们的数据添加到同BlockingCollection队列,如果他们有不同的数据类型,但需要在队列中处于相同的位置?
例如,如果我有SensorA的queueA,SensorB的queueB和queueC。 这两个队列可以以不同的速度填充。因此,让我们说队列A有50个元素,但是SensorB速度更快,并且已经有100个元素存储在queueB中。不过,我需要以某种方式检索数据,以便我可以将queueA [33] .data和queueB [33] .data放置在queueC [33] .data中。当然,我不希望开始与element33,但总是与存储在queueA和等级队列B的第一要素....
我希望你明白我的中东和北非