public ClrHeapDecorator(ClrRuntime clrRuntime, ThreadDispatcher threadDispatcher)
		{
			_threadDispatcher = threadDispatcher;
			_clrHeap = threadDispatcher.Process(() => clrRuntime.GetHeap());

			

			_threadDispatcher.Process(()=>
			{
				objectIndex = IndexBuilder.Build(_clrHeap);
				GCSettings.LargeObjectHeapCompactionMode = GCLargeObjectHeapCompactionMode.CompactOnce;
			});
		}
			public static MultiElementDictionary2<ulong> Build(ClrHeap heap)
			{

				var result = new MultiElementDictionary2<ulong>();

				foreach (var objRef in heap.EnumerateObjects())
				{
					var type = heap.GetObjectType(objRef);
					result.Add(type.Name, objRef);
				}

				return result;
			}