gpt4 book ai didi

c# - "The specified Type must be a struct containing no references"使用 TeaFiles.NET

转载 作者:行者123 更新时间:2023-11-30 22:18:24 25 4
gpt4 key购买 nike

我发现了这个名为 TeaFiles.NET 的引人注目的库。

我正在编写一个非常简单的控制台应用程序来测试它。

代码如下:

class Program
{
static void Main(string[] args)
{
Console.WriteLine("Starting....");

string filename = String.Format("History_{0}.{1}.{2}.tea",
DateTime.Now.Year,
DateTime.Now.Month,
DateTime.Now.Day);

File.Delete(filename);
using (var tf = TeaFile<HistoryRow>.Create(filename))
{
var items = new List<HistoryRow>();

for (int i = 0; i < 1000; i++)
{
for (int k = 0; k < 100000; k++)
{
items.Add(new HistoryRow()
{
Flags = 192,
Name = "Name_" + i.ToString(CultureInfo.InvariantCulture),
Value = k,
Timestamp = DateTime.Now.AddTicks((long)i)
});
}
}

var sw = Stopwatch.StartNew();
Console.WriteLine("Initiate write...");
tf.Write(items);
sw.Stop();
Console.WriteLine("...completed write in {0} ms.", sw.ElapsedMilliseconds);
}

Console.ReadLine();

}
}

struct HistoryRow
{
public string Name;
public dynamic Value;
public Time Timestamp;
public int Flags;
}

这应该非常简单。相反,它会在 Create() 调用时出现以下错误:

“指定的类型必须是不包含引用的结构”。

我真的不知道从哪里开始排除故障......

最佳答案

TeaFiles 提供对时间序列数据的快速读/写访问。鉴于该库需要一个 struct 包含@dtb 描述为 blittable types 的内容,这应该有效:

[StructLayout(LayoutKind.Sequential, Pack=1)]
struct HistoryRow
{
public char[16] Name;
public double Value;
public Time Timestamp;
public int Flags;
}

请注意,在存储时间数据系列时,您通常不会存储带有值的描述,该值是已有名称的列中的许多值之一。

关于c# - "The specified Type must be a struct containing no references"使用 TeaFiles.NET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16109839/

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