C# : Methode Namen erwartet
Habe ich, die Methode, die zählt Dateien in einem bestimmten Ordner:
private void countfiles(string path)
{
if (path != "")
{
DirectoryInfo dir = new DirectoryInfo(path);
foreach (FileInfo filesindires in dir.GetFiles())
{
if (filesindires.FullName != Application.ExecutablePath)
{
num_files++;
Thread.Sleep(1);
}
}
foreach (DirectoryInfo dirsinfolder in dir.GetDirectories())
{
countfiles(dirsinfolder.FullName);
}
}
}
und wenn der Benutzer klickt auf den zählen-Knopf wollte ich einen thread, damit das Programm nicht hängen.
Thread count = new Thread(new ThreadStart(countfiles(@"E:/test")));
Aber bekomme ich diese Fehler auch schon vor dem Debuggen:
Method Name Expected
Ich verstehe nicht; was bedeutet, dass Fehler von mir brauchen?
Endlich vielen Dank für Eure Hilfe im Voraus.
InformationsquelleAutor R.Vector | 2012-01-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist
Sie nicht haben, um die übergabe der Parameter einfach den Namen der Methode.
Außerdem müssen Sie ändern Sie den Typ der parameter
object
, nichtstring
. Alternativ, wenn Sie möchten, um diestring
parameter, die Sie verwenden können:InformationsquelleAutor Tudor
Das problem ist hier:
Das argument ist eine Methode-Aufruf versucht zu tarnen als Methode-Gruppe. Der compiler kann wiederum eine kompatible Methode-Gruppe lambda-Ausdruck oder eine anonyme Methode an einen Delegaten-Typ, aber nicht eine Methode aufrufen.
Versuchen Sie eine dieser :
Wenn Sie möchten, eine Methode zu verwenden-Gruppe, müssen Sie eine separate Methode:
und dann können Sie tun:
Könnten Sie auch die Arbeit mit den
ParameterizedThreadStart
delegate-Typ und die damit verbundenen überlastungen desThread
Konstruktor, aber es ist ein wenig umständlich zu arbeiten, da das argumentobject
, so eine Besetzung irgendwo oder andere wird unvermeidbar sein.InformationsquelleAutor Ani
Haben Sie einen Blick auf die
ParameterizedThreadStart
delegieren. Dies übergibt die Werte für Sie.InformationsquelleAutor Daniel A. White
Den ThreadStart-Konstruktor wird erwartet, dass Ihr code so Aussehen:
Muss er wissen, welche Methode zu führen, nicht das Ergebnis der Methode. Aber da du ja einen parameter, müssen Sie es so machen:
InformationsquelleAutor Cᴏʀʏ