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();
        }
Exemplo n.º 2
0
        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);
            }
        }
Exemplo n.º 3
0
        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);
            }
        }