嗨,我有一個關於任務的簡短問題。據我所知,任務本身可以啓動多個線程。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的第一要素....
我希望你明白我的中東和北非