public void AnalyzeProject(DTE dte, string projectPath) { IsLoading = Visibility.Visible; Tree = null; Task.Run(() => { var tree = CodeParser.GetPublicMethodsFromProject(projectPath).Result; Application.Current.Dispatcher.Invoke(new Action(() => { var treeviewModel = new TreeViewModel(dte, tree.Node); CastToTreeViewModel(tree, treeviewModel); if (tree.Children.Count > 0) { Tree = new ObservableCollection <TreeViewModel> { treeviewModel }; } IsLoading = Visibility.Collapsed; })); }); }