From fdb8001b8787487a47f9254bf8a9a213e8507891 Mon Sep 17 00:00:00 2001 From: Daniel Grunwald Date: Sat, 16 Jul 2011 11:20:57 +0200 Subject: [PATCH] Explicitly trigger garbage collection after an assembly was unloaded. Closes #246. --- ILSpy/AssemblyList.cs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/ILSpy/AssemblyList.cs b/ILSpy/AssemblyList.cs index d49ed3c23..6fb33acb0 100644 --- a/ILSpy/AssemblyList.cs +++ b/ILSpy/AssemblyList.cs @@ -148,6 +148,20 @@ namespace ICSharpCode.ILSpy lock (assemblies) { assemblies.Remove(assembly); } + RequestGC(); + } + + static bool gcRequested; + + void RequestGC() + { + if (gcRequested) return; + gcRequested = true; + App.Current.Dispatcher.BeginInvoke(DispatcherPriority.ContextIdle, new Action( + delegate { + gcRequested = false; + GC.Collect(); + })); } public void Sort(IComparer comparer)