我有一个static class NativeMethods
包含用[DllImport]
修饰的方法。
我想在NativeMethods
静态构造函数中使用LoadLibrary动态加载DLL。
我应该在某些(进程/ AppDomain?)关闭事件上显式调用FreeLibrary吗? 是让OS在仅为崩溃保留的进程关闭时隐式执行清理还是正常情况?
答案 0 :(得分:0)
你应该明确地这样做。正确的方法是创建一个包含库引用的类,它在其终结器中释放引用,就像使用任何其他长期存在的本机资源一样。
等待操作系统清理是很诱人的(它会在进程退出时清理它,不用担心),但是当你扩展软件时它会引入一些难以跟踪的问题,它可以从长远来看,许多问题(如挂线)会变得更糟。