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

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

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

Добрый день, помогите решить задания, у меня есть treeview, где есть метод на события BeforeExpand, мне нужно выполнять его в новом потоке, как это сделать?
Листинг программы
  1. private void treeView1_BeforeExpand(object sender, TreeViewCancelEventArgs e)
  2. {
  3. foreach (var childNode in e.Node.Nodes.Cast<TreeNode>())
  4. if (childNode.Nodes.Count == 0)
  5. BuildChildNodes(childNode);
  6. }
  7. private void BuildChildNodes(TreeNode node)
  8. {
  9. try
  10. {
  11. RegistryKey key = (RegistryKey)node.Tag;
  12. foreach (var name in key.GetSubKeyNames())
  13. {
  14. TreeNode child = new TreeNode(name) { Tag = key.OpenSubKey(name) };
  15. node.Nodes.Add(child);
  16. }
  17. }
  18. catch { }
  19. }

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

textual
Листинг программы
  1.         private async void treeView1_BeforeExpand(object sender, TreeViewCancelEventArgs e)
  2.         {
  3.             foreach (var childNode in e.Node.Nodes.Cast<TreeNode>())
  4.                 if (childNode.Nodes.Count == 0) {
  5.                     RegistryKey key = (RegistryKey)childNode.Tag;
  6.                     await Task.Run(() => BuildChildNodes(childNode, key));
  7.                 }
  8.         }
  9.  
  10.         private void BuildChildNodes(TreeNode node, RegistryKey key)
  11.         {
  12.             try {
  13.                 foreach (var name in key.GetSubKeyNames()) {
  14.                     this.Invoke((MethodInvoker)delegate
  15.                     {
  16.                         TreeNode child = new TreeNode(name) { Tag = key.OpenSubKey(name) };
  17.                         node.Nodes.Add(child);
  18.                     }, null);
  19.                 }
  20.             } catch { }
  21.         }

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


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

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

9   голосов , оценка 3.444 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы