В чём причина ошибки "Нет перегруженного метода, который соответствует делегату"? - C#

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

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

Имеем:
Листинг программы
  1. foreach (var file in allFiles)
  2. {
  3. myThreads.Add(new Thread(new ParameterizedThreadStart(Calc))); //Ошибка!!!
  4. Calc(myLengthList, myNestingList, file);
  5. }
где:
Листинг программы
  1. private static void Calc(List<ElementOfLengthResultList> myLengthList, List<ElementOfNestingResultList> myNestingList, string file)
  2. {
  3. SyntaxTree tree = SyntaxTree.ParseFile(file);
  4. IEnumerable<MethodDeclarationSyntax> methods = tree.GetRoot().DescendantNodes().OfType<MethodDeclarationSyntax>();
  5. foreach (var method in methods)
  6. {
  7. if (method.Body != null)
  8. {
  9. BlockSyntax methodBody = method.ChildNodes().OfType<BlockSyntax>().Single();
  10. IEnumerable<StatementSyntax> bs = methodBody.DescendantNodes().OfType<BlockSyntax>();
  11. int Length = methodBody.DescendantNodes().OfType<StatementSyntax>().Except(bs).Count();
  12. int nestingLevel = new NestingLevelVisitor().Visit(method);
  13. string nameOfFile = Path.GetFileName(file);
  14. int number = tree.GetLineSpan(method.Identifier.Span, false).StartLinePosition.Line + 1;
  15. ElementOfLengthResultList elementLength = new ElementOfLengthResultList(Length, nameOfFile, number);
  16. ElementOfNestingResultList elementNesting = new ElementOfNestingResultList(nestingLevel, nameOfFile, number);
  17. myLengthList.Add(elementLength);
  18. myNestingList.Add(elementNesting);
  19. }
  20. }
  21. }
Ошибка 1 Нет перегруженного метода для "Calc", который соответствует делегату "System.Threading.ParameterizedThreadStart" Как заставить это работать?
PS: дико извиняюсь за не тот раздел, случайно вышло, перенесите пожалуйста
Решил проблему так:
Листинг программы
  1. Thread th = new Thread(delegate() { Calc(myLengthList, myNestingList, file); });
А вообще до какого кол-ва потоков многопоточность себя оправдывает?

Решение задачи: «В чём причина ошибки "Нет перегруженного метода, который соответствует делегату"?»

textual
Листинг программы
  1. Thread th = new Thread(delegate() { Calc(myLengthList, myNestingList, file); });
  2.                     myThreads.Add(th);
  3.                     th.Start();

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


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

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

14   голосов , оценка 4.143 из 5

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

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

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