Entwickler-Ecke

Basistechnologien - New Thread mit Parameterübergabe


vreden123 - Mo 30.05.11 22:35
Titel: New Thread mit Parameterübergabe
Hallo

mit folgendem Code möchte ich einen neuen Thread starten:

C#-Quelltext
1:
2:
System.Threading.Thread seiteuberpruefen_Thread = new System.Threading.Thread(TC_seiteuberpruefen.seiteuberpruefen_newthread("WERT"));
seiteuberpruefen_Thread.Start();


Sonst hat auch alles geklappt, nur jetzt muss ich einen wert einer variable übergeben.
Der neue Thread hat folgenden code:

C#-Quelltext
1:
2:
3:
4:
public void seiteuberpruefen_newthread(string s_intray)
            {
code...
}


Vom Prinzip her gesehen müsste es ja klappen aber ich bekomme folgende fehlermeldung:
Fehler 2 1-Argument: Kann nicht von "void" in "System.Threading.ThreadStart" konvertiert werden. .......\Main.cs 742 99 programmname

Wie muss ich den fehler verstehen?


Kha - Mo 30.05.11 23:04

Damit führst du die Methode direkt aus, du willst ja aber eine Referenz übergeben. Solche Parameter übergibt man heutzutage über anonyme Methoden:

C#-Quelltext
1:
new Thread(delegate { TC_seiteuberpruefen.seiteuberpruefen_newthread("WERT"); });                    


vreden123 - Mo 13.06.11 20:15

Hallo,

ich habe meinen Code jetzt angepasst, aber es ist immer noch irgendwo ein Fehler drin.


C#-Quelltext
1:
2:
System.Threading.Thread seiteuberpruefen_Threads = new System.Threading.Thread(delegate { TC_seiteuberpruefen.seiteuberpruefen_newthread("WERT"); });
seiteuberpruefen_Threads.Start();


Es wird folgender Fehler angezeigt:


C#-Quelltext
1:
Fehler  1  Der Aufruf unterscheidet nicht eindeutig zwischen folgenden Methoden und Eigenschaften: "System.Threading.Thread.Thread(System.Threading.ParameterizedThreadStart)" und "System.Threading.Thread.Thread(System.Threading.ThreadStart)"  PFAD  742  72  PROGRAMMNAME                    


Wie kann ich den Fehler am besten verstehen?


Trashkid2000 - Di 14.06.11 06:50

Hi,
das muss auch so aussehen:

C#-Quelltext
1:
new Thread(delegate() { TC_seiteuberpruefen.seiteuberpruefen_newthread("WERT"); });