独立运行.NET中的C ++库

时间:2016-08-04 10:36:12

标签: c# c++

我有一个使用C ++库的.net应用程序。在应用程序中,您可以运行多个作业,每个作业使用C ++库进行一些计算。问题是,C ++对象在作业之间共享,我想避免它。我能想到的唯一方法是将每个任务作为一个单独的进程运行。有没有更好的方法呢?喜欢在不同的范围内运行

1 个答案:

答案 0 :(得分:1)

答案是,但这并不容易。

AppDomain不为本机代码提供隔离,因此您无法将其用于您的目标。每个进程加载一次非托管dll,而不是每个AppDomain加载一次。

您可以使用WinAPI LoadLibrary()函数多次手动加载库。加载库的每个副本都可以在具有安全线程上下文的单独线程中使用。 Here描述了如何从动态加载的库中调用函数。不要忘记致电FreeLibrary()来释放资源。