非托管资源释放
C#写的dll,使用了一些给托管资源。加载这些资源很耗费时间,不卸载他们吧会留下痕迹(系统文件),想在DLL卸载的时候释放。
DLL中有一个私有静态类管理这些资源,静态类不能有析构函数,纠结。
DLL中还有一些其他公开类,都是通过私有静态类使用这些资源。
公开类可以有析构函数,释放这些资源,但是这样会导致非托管资源频繁加载、卸载,慢死了,慢的老板都想打死我了。
如果能够在DLL卸载的时候卸载这些资源就很理想了。C或者C++都很容易做到,C#我没招了。请高手赐教
------解决方案--------------------你说的东西中哪里有非托管资源。
你应该为有非托管资源的对象编写Dispose方法,该Close的Close,该Free的Free。
------解决方案--------------------这个私有静态类至少需要一个静态的Dispose吧。然后添加一个私有的空的单例类,在析构函数中调用这个Dispose。
------解决方案--------------------一般是重载Dispose()方法,好好看一下这个方法是什么用的
------解决方案--------------------典型的标题党,问的完全不是那回事。
------解决方案--------------------对于非托管的资源,系统都会提供一些方法去释放这些资源,如果Dispose,close等