Heim > Backend-Entwicklung > C++ > Wie kann ich Parameter an eine ThreadStart-Methode in C# übergeben?

Wie kann ich Parameter an eine ThreadStart-Methode in C# übergeben?

DDD
Freigeben: 2025-01-07 08:02:10
Original
628 Leute haben es durchsucht

How Can I Pass Parameters to a ThreadStart Method in C#?

Übergabe von Parametern an die ThreadStart-Methode in C#

In C# ist die ThreadStart-Methode ein Delegat, der das Ausführungsverhalten des Threads definiert. Allerdings kann die Übergabe von Parametern an diese Methode eine Herausforderung darstellen.

Betrachten Sie beispielsweise den folgenden Code, in dem wir versuchen, einen Parameter an die Methode „Download“ zu übergeben:

public void download(string filename)
{
    // download code
}

Thread thread = new Thread(new ThreadStart(download(filename));
Nach dem Login kopieren

Dieser Code wird führt zu einem Fehler „Methodentyp erwartet“. Um Parameter effektiv zu übergeben, sollten Sie die folgenden Ansätze in Betracht ziehen:

Verwendung anonymer Lambda-Ausdrücke:

Die einfachste Lösung besteht darin, anonyme Lambda-Ausdrücke direkt im ThreadStart-Konstruktor zu verwenden:

string filename = ...
Thread thread = new Thread(() => download(filename));
thread.Start();
Nach dem Login kopieren

Dieser Ansatz ermöglicht die Übergabe mehrerer Parameter und ermöglicht eine Überprüfung zur Kompilierungszeit, ohne dass eine Umwandlung erforderlich ist „Objekt.“

Verwenden von ParameterizedThreadStart:

Alternativ können Sie den ParameterizedThreadStart-Delegaten verwenden, der wie folgt definiert ist:

public delegate void ParameterizedThreadStart(object obj);
Nach dem Login kopieren

Dies ermöglicht Ihnen So übergeben Sie einen einzelnen Objektparameter an den Thread:

ParameterizedThreadStart threadStart = new ParameterizedThreadStart(download);
Thread thread = new Thread(threadStart);
thread.Start(filename);
Nach dem Login kopieren

Übergabe mehrerer Parameter:

Für Szenarien, in denen mehrere Parameter übergeben werden müssen, können benutzerdefinierte Delegate-Typen oder Techniken wie das Erfassen von Variablen durch Abschlüsse eingesetzt werden. Der Ansatz des anonymen Lambda-Ausdrucks wird jedoch aufgrund seiner Einfachheit und Zweckmäßigkeit im Allgemeinen bevorzugt.

Das obige ist der detaillierte Inhalt vonWie kann ich Parameter an eine ThreadStart-Methode in C# übergeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage