我有一个超高性能的C / C ++数据结构(see here!),我想在我的C#程序中访问和使用。
想象一下,C / C ++数据结构有一个公共API(get
,add
,delete
等)。
如何以高性能的方式在C#中多次调用这些方法?
PS 在你批评我使用短语“C / C ++”之前......
在我看来,C / C ++不同于C 和 C ++编程语言。我不知道C ++,而是使用一些C ++构造的C的扩展,可以用C ++编译器编译!
答案 0 :(得分:5)
如果性能对您很重要,那么您应该避免多次越过托管/非托管边界。 C#和C ++都可以是高性能语言,但互操作性成本并不令人愉快。
我建议你编写一个C库(只要方法是extern C就可以用C ++构造实现)并使用P / Invoke从C#代码-once调用它。该库可以聚合您的高性能数据结构,并将一些有用的信息返回给C#端。
答案 1 :(得分:0)
您可以使用烟斗。