.Net AppDomains是否提供针对恶意C库的保护?

Cli*_*rce 1 c c# multithreading appdomain

我有一个不是线程安全的C库- 可能永远不会.我用PInvoke从C#调用它,这很好用.

现在必须从C#程序调用C库,这个程序肯定是多线程的.我可以在C#中通过从单独的AppDomains调用每个C代码实例来管理它,除了看起来效果不佳.我仍然在C库中遇到很多跨线程问题.

AppDomains是否会将C代码混乱(全局等等)彼此隔离或不隔离?如果没有,会是什么?

Nic*_*ler 5

不,AppDomains无济于事.如果同时调用C lib,则调用来自哪个AppDomain无关紧要.

如果C lib不是线程安全的,则必须序列化对它的访问.实际上,拥有多个AppDomain会使这更难 - 您必须跨域同步.