Exemple #1
0
        private void updateTimer_Tick(object sender, EventArgs e)
        {
            foreach (var node in treeView1.Nodes.Cast <TreeNode>().ToArray())
            {
                try
                {
                    var pr = node.Tag as Process;
                    if (pr == null || pr.HasExited)
                    {
                        treeView1.Nodes.Remove(node);
                    }
                    else
                    {
                        foreach (var subNode in node.Nodes.Cast <TreeNode>().ToArray())
                        {
                            try
                            {
                                var spr = subNode.Tag as Process;
                                if (spr == null || spr.HasExited)
                                {
                                    node.Nodes.Remove(subNode);
                                }
                            }
                            catch (Exception ex)
                            {
                                Console.WriteLine(ex);
                                node.Nodes.Remove(subNode);
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex);
                    treeView1.Nodes.Remove(node);
                }
            }

            if (treeView1.Nodes.Count <= 0)
            {
                AllProcessesClosed?.Invoke(sender, e);
            }
            else
            {
                _timer.Start();
            }
        }
Exemple #2
0
 private void buttonIgnore_Click(object sender, EventArgs e)
 {
     AllProcessesClosed?.Invoke(sender, e);
 }