1

簡単なハードウェア データ取得実験 (ナショナル インスツルメンツのハードウェアに基づく) を実行したいと考えています。

実際の取得は、データ (double の形式) が double[] として利用できるスレッドで実行されます。返される値の配列は、データが入ってくる速度に応じて、任意の長さにすることができます。

このデータをグローバル データセットに追加する必要があります。

C++ などでは、事前に割り当てられた並べ替えのバッファーに新しいデータを追加し、ポインターをバッファーの上に移動することで、これを解決できます。

C#では、よくわかりません。次のようなことができますか:

ConcurrentQueue に Enqueue(double[]) ?

double[] を反復処理し、各要素でエンキューを呼び出さなければならないのはばかげているように思えます..

4

1 に答える 1

5

a を定義していることを確認してから、次のConcurrentQueue<double[]>ことができます。

System.Collections.Concurrent.ConcurrentQueue<double[]> concurrentQueue = 
      new System.Collections.Concurrent.ConcurrentQueue<double[]>();
concurrentQuey.Enqueue(new double[] { 1, 3, 4, });
concurrentQuey.Enqueue(new double[] { 4, 5, 6, });

後で double アイテムのフラット化された配列が必要な場合は、次のことができます。

double[] flattenedArray = concurrentQueue.SelectMany(r => r).ToArray();
于 2013-08-20T15:02:48.053 に答える