В чём причина ошибки "Нет перегруженного метода, который соответствует делегату"? - C#
Формулировка задачи:
Имеем:
где:
Ошибка 1 Нет перегруженного метода для "Calc", который соответствует делегату "System.Threading.ParameterizedThreadStart"
Как заставить это работать?
А вообще до какого кол-ва потоков многопоточность себя оправдывает?
Листинг программы
- 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);
- }
- }
- }
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();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д