Запуск метода в новом потоке - C# (183202)

Узнай цену своей работы

Формулировка задачи:

Добрый день, помогите решить задания, у меня есть treeview, где есть метод на события BeforeExpand, мне нужно выполнять его в новом потоке, как это сделать?
private void treeView1_BeforeExpand(object sender, TreeViewCancelEventArgs e)
        {
            foreach (var childNode in e.Node.Nodes.Cast<TreeNode>())
                if (childNode.Nodes.Count == 0)
                    BuildChildNodes(childNode);
        }
private void BuildChildNodes(TreeNode node)
        {
            try
            {
                RegistryKey key = (RegistryKey)node.Tag;
                foreach (var name in key.GetSubKeyNames())
                {
                    TreeNode child = new TreeNode(name) { Tag = key.OpenSubKey(name) };
                    node.Nodes.Add(child);
                }
            }
            catch { }
        }

Решение задачи: «Запуск метода в новом потоке»

textual
Листинг программы
        private async void treeView1_BeforeExpand(object sender, TreeViewCancelEventArgs e)
        {
            foreach (var childNode in e.Node.Nodes.Cast<TreeNode>())
                if (childNode.Nodes.Count == 0) {
                    RegistryKey key = (RegistryKey)childNode.Tag;
                    await Task.Run(() => BuildChildNodes(childNode, key));
                }
        }
 
        private void BuildChildNodes(TreeNode node, RegistryKey key)
        {
            try {
                foreach (var name in key.GetSubKeyNames()) {
                    this.Invoke((MethodInvoker)delegate
                    {
                        TreeNode child = new TreeNode(name) { Tag = key.OpenSubKey(name) };
                        node.Nodes.Add(child);
                    }, null);
                }
            } catch { }
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.444 из 5
Похожие ответы