private void BuildNodes(System.Threading.SynchronizationContext ui) { TaskFactory factory = new TaskFactory(4); foreach (Assembly a in AppDomain.CurrentDomain.GetAssemblies().Where(a => !(a is System.Reflection.Emit.AssemblyBuilder))) { factory.StartTask <Assembly, AssemblyNode>(ass => { AssemblyNode an = new AssemblyNode(ass); an.PopulateAll(txtFilter.Text.ToLower()); an.ExpandAll(); if (an.Nodes.Count > 0) { return(an); } else { return(null); } }, a, an => { if (an != null) { ui.Send(o => { ((SearchTypeOrMember)o).tvSearchResults.Nodes.Add(an); }, this); } }); } factory.WaitAll(); }
public void FillAssemblies() { TaskFactory tasks = new TaskFactory(4); var ui = WindowsFormsSynchronizationContext.Current; foreach (Assembly a in AppDomain.CurrentDomain.GetAssemblies().OrderBy(ass => ass.GetName().Name)) { AssemblyNode an = new AssemblyNode(a); tvNodes.Nodes.Add(an); } }
private void loadAssemblyToolStripMenuItem_Click(object sender, EventArgs e) { try { using (OpenFileDialog ofd = new OpenFileDialog()) { ofd.Filter = "*.dll;*.exe|*.dll;*.exe"; if (ofd.ShowDialog(this) == System.Windows.Forms.DialogResult.OK) { Assembly a = Assembly.LoadFile(ofd.FileName); AssemblyNode an = new AssemblyNode(a); tvNodes.Nodes.Add(an); } } } catch (Exception ex) { MessageBox.Show("Error loading assembly: " + ex.GetType().FullName + " - " + ex.Message); } }