コード例 #1
0
		void LoadData()
		{
			AdornerLayer layer = AdornerLayer.GetAdornerLayer(this);
			OverlayAdorner ad = new OverlayAdorner(this);
			WaitBar bar = new WaitBar(Translation.WaitBarText);
			ad.Child = bar;
			layer.Add(ad);
			int rangeStart = RangeStart;
			int rangeEnd = RangeEnd;
			string query = CurrentQuery;
			
			ProfilingDataProvider provider = Provider;
			QueryCompiler compiler = new QueryCompiler(Reporter, query);
			ringDiagram.SelectedRoot = null;
			
			task.Execute(() => LoadWorker(provider, compiler, rangeStart, rangeEnd),
			             list => LoadCompleted(list, layer, ad),
			             delegate { layer.Remove(ad); });
		}
コード例 #2
0
		static HierarchyList<CallTreeNodeViewModel> LoadWorker(ProfilingDataProvider provider, QueryCompiler compiler, int rangeStart, int rangeEnd)
		{
			try {
				if (compiler.Compile()) {
					IEnumerable<CallTreeNode> data = compiler.ExecuteQuery(provider, rangeStart, rangeEnd);
					#if DEBUG
					data = data.WithQueryLog(Console.Out);
					#endif
					var nodes = data.Select(i => new CallTreeNodeViewModel(i, null)).ToList();
					return new HierarchyList<CallTreeNodeViewModel>(nodes);
				}
			} catch (ObjectDisposedException) {
				return null;
			}
			
			return null;
		}
コード例 #3
0
		static HierarchyList<CallTreeNodeViewModel> LoadWorker(ProfilingDataProvider provider, QueryCompiler compiler, int rangeStart, int rangeEnd)
		{
			try {
				if (compiler.Compile()) {
					var data = compiler.ExecuteQuery(provider, rangeStart, rangeEnd);
					var nodes = data.Select(i => new CallTreeNodeViewModel(i, null)).ToList();
					return new HierarchyList<CallTreeNodeViewModel>(nodes);
				}
			} catch (ObjectDisposedException) {
				return null;
			}
			
			return null;
		}