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

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

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

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

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

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

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


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

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

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