小编use*_*245的帖子

在加载上下文中加载非托管静态 dll

我有原生的非托管 dll,它是静态的,如果我想并行运行它,每次我需要库来做一些工作时都必须加载它。在 .NET 中,我会使用 AppDomain 并在需要时加载此 dll,但在 NET Core 中 AppDomains 已经消失(目前)。我查看了 AssemblyLoadContext,但没有关于 LoadUnmanagedDll 的适当文档。这可以在netstandard1.6中完成吗?

编辑 当前代码使用 PInvoke 调用并且运行良好。问题是因为这个 unmanged dll 的性质,当我尝试并行调用它时会抛出 AccessViolationException,因为两个或多个任务想要访问相同的内存。

如果我可以在某些上下文中每次加载 dll,然后调用 PInvoke,这个问题就会消失。

c# .net-core

3
推荐指数
1
解决办法
1349
查看次数

标签 统计

.net-core ×1

c# ×1