我们有一个主要用 C# 编写的大型项目(服务、多线程等)。但是,核心数字运算算法是用非托管 C++ 编写的,速度很快(OpenMP 等)。
不幸的是,目前我们必须做很多努力才能在这两个世界之间交换数据。即,我们必须在 C++/CLI 中为每个 C++ 类编写包装类。对于 C#-“世界”中的(实际上)任何必需的设置(属性),在 C++ 世界(头文件)中都有一个副本,并且在包装类中来回显式转换。这种架构看起来效率很低,而且很容易出错。
主要问题:有没有办法在非托管 C++ 中以某种方式自动共享具有属性的 C# 类?(我们必须阅读和写作!)
第二个问题:您能否就如何在上述案例中改进架构提供任何建议。我们的一个考虑是完全切换到 C++,但必须为我们目前在 .NET 中所做的所有(系统)事情找到合适的库并编写干净的代码感觉并不好。
非常感谢您的帮助和问候,雅各布