gpt4 book ai didi

c# - 将 T 的数组排队到 ConcurrentQueue

转载 作者:太空宇宙 更新时间:2023-11-03 20:13:31 29 4
gpt4 key购买 nike

我想运行一个简单的硬件数据采集实验(基于 National Instruments 硬件)。

实际的获取在一个线程中运行,其中数据(以 double 形式)作为 double[] 可用。返回值数组可以是任意长度,具体取决于数据传入的速度。

我需要通过追加将此数据添加到全局数据集。

在 C++ 或类似语言中,您可以通过将新数据添加到预先分配的各种缓冲区并将指针向上移动缓冲区来解决此问题。

在 C# 中我不太确定,我可以做类似的事情吗:

Enqueue(double[]) 到 ConcurrentQueue ?

必须迭代 double[] 并在每个元素上调用 enqueue 似乎很愚蠢..

最佳答案

确保定义一个 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[] flattenedArray = concurrentQueue.SelectMany(r => r).ToArray();

关于c# - 将 T 的数组排队到 ConcurrentQueue<T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18338403/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com