我需要经常将数据从 C++ 传递到 C#。它应该尽可能快,因为我正在编写超低延迟交易应用程序。
我有纯C++项目(稍后会移植到Linux)。我需要将数据从它传递到我的 C# 项目。我总是需要传递相同的结构(如果这很重要的话)。
结构看起来像这样:Ticker = "MSFT"Price = "30"Volume = "10"Side = "Buy"
我想有两个选择:
- 编写 C++-CLI 包装器,它将 UnmanagedMemoryStream 从 C++ 传递到 C#
- 使用内存映射文件
会是什么:
- 更快
- 更容易实现
- 更容易移植到 Linux ?
最佳答案
Mono 完全不支持使用混合模式 C++/CLI 程序集(参见 here )。 Mono 仅支持纯 CLR C++ 程序集。
因此,如果您计划移植到 Linux,似乎其他可能性,例如内存映射文件,或 Matthew 建议使用 P/Invoke(Mono 支持,但它需要 some extra work)是您应该使用的。
关于c# - 将数据从 C++ 传递到 C# - 映射文件与 CLI+UnmanagedMemoryStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14914757/