卸载加载了Assembly.LoadFrom()的Assembly
|
加载dll后,我需要检查运行GetTypes()的时间。
代码如下。
Assembly assem = Assembly.LoadFrom(file);
sw = Stopwatch.StartNew();
var types1 = assem.GetTypes();
sw.Stop();
double time1 = sw.Elapsed.TotalMilliseconds;
我想卸载并重新加载dll,以检查再次运行GetTypes()所花费的时间。
如何卸载? assem = null
够用吗?
有没有一种明确的方法可以调用垃圾回收器来回收分配给Assem的资源?
没有找到相关结果
已邀请:
6 个回复
懊毁暗
GC在后台线程中调用终结器,这就是为什么必须等待并再次调用Collect()以确保删除了所有内容的原因。
拟僚疽刊剔
拈吉勉犬姆
与
一起使用,而不是使用
或
。这样,它将不使用汇编文件,而是将其读取并使用读取的数据。 您的代码将如下所示
从这里开始,除非文件包含的所有域都被卸载,否则我们无法卸载文件。 希望这可以帮助。:)
告耸
桔适丛
在单独的应用程序域中运行加载程序,如下所示:
补蹲农界维