public ClrInstanceFieldDecorator(ClrInstanceField clrInstanceField, ThreadDispatcher threadDispatcher, IClrHeapDecorator heap)
		{
			_clrInstanceField = clrInstanceField;
			_threadDispatcher = threadDispatcher;

			_threadDispatcher.Process(() =>
			{
				Name = _clrInstanceField.Name;
				HasSimpleValue = _clrInstanceField.HasSimpleValue;
				Type = new ClrTypeDecorator(heap, _threadDispatcher, _clrInstanceField.Type);
				IsObjectAndNotString = _clrInstanceField.IsObjectReference() &&_clrInstanceField.ElementType != ClrElementType.String;
			});
		}
		public ClrHeapDecorator(ClrRuntime clrRuntime, ThreadDispatcher threadDispatcher)
		{
			_threadDispatcher = threadDispatcher;
			_clrHeap = threadDispatcher.Process(() => clrRuntime.GetHeap());

			

			_threadDispatcher.Process(()=>
			{
				objectIndex = IndexBuilder.Build(_clrHeap);
				GCSettings.LargeObjectHeapCompactionMode = GCLargeObjectHeapCompactionMode.CompactOnce;
			});
		}