private void Thread_LoadAssemblyVersions(AssemblyNode pNode) { try { Version[] versions = mGac.GetAllVersions(pNode.AssemblyName, true); Invoke((ThreadStart) delegate { pNode.Nodes.Clear(); if (versions.Length == 0) { pNode.Nodes.Add(new ErrorNode("No Versions Available")); } else { foreach (Version version in versions) { pNode.Nodes.Add(new VersionNode(pNode.AssemblyName, version)); } } }); } catch (Exception ex) { Invoke((ThreadStart)delegate { pNode.Nodes.Clear(); pNode.Nodes.Add(new ErrorNode("Failed to retrieve versions: " + ex.Message)); }); } }
private void Thread_AddReferences() { try { string[] assemblies = mGac.GetAllAssemblies(); if (this.IsDisposed) { return; } Invoke((ThreadStart)delegate { foreach (string assembly in assemblies) { TreeNode node = new AssemblyNode(assembly); referencesTreeView.Nodes.Add(node); // Add the temporary "loading" node node.Nodes.Add(new LoadingNode()); } loadingLabel.Visible = false; }); } catch (Exception ex) { if (this.IsDisposed) { return; } Invoke((ThreadStart)delegate { referencesTreeView.Nodes.Clear(); referencesTreeView.Nodes.Add(new ErrorNode("Failed to retrieve assemblies: " + ex.Message)); }); } }