Entwickler-Ecke

C# - Die Sprache - 2 Parameter an Thread übergeben möglich?


chrisachern - Di 26.06.07 14:35
Titel: 2 Parameter an Thread übergeben möglich?
Hallo.

Ist es möglich 2 strings an einen Thread zu übergeben? So in der Art wie unten? Bekomme es einfach net hin


C#-Quelltext
1:
2:
3:
4:
5:
6:
Thread newthread = new Thread(new ParameterizedThreadStart(savebyThread));
string[] dummy = new string[2];
dummy[0] = string1;
dummy[1] = string2;
                  
newthread.Start(dummy);


Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt


Christian S. - Di 26.06.07 15:03

Sollte so eigentlich passen, auch wenn das "new ParameterizedThreadStart(...)" gar nicht brauchst, sondern nur bei "savebyThread" übergeben kannst.

Was für eine Fehlermeldung kommt denn und wie sie die savebyThread-Methode aus?


chrisachern - Di 26.06.07 15:16

methode savevbythread sieht ganz einfach aus zum testen:


C#-Quelltext
1:
2:
3:
4:
5:
 private void savebyThread(object data)
        {
            string x = (string)data[1];
            string y = (string)data[2];
        }


bekomm 2 fehlermeldungen: Indizierung mit [] kann nicht auf einen Ausdruck vom Typ "object" angewendet werden.


Thread newthread = new Thread(new ThreadStart(savebyThread)); hier bekomm ich noch

Keine Überladung für "savebyThread" stimmt mit dem Delegaten "System.Threading.ThreadStart" überein. C:\aktuell\DUP_DB\Hauptform.cs 192 51 DUP_DB

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt


Christian S. - Di 26.06.07 15:28

Zuerst einmal musst Du data in ein String-Array casten, sonst hat's natürlich keine Indizes, weil's noch ein Object ist.

Und dass man eine Methode mit Parameter nicht für einen nicht-parametized ThreadStart verwenden kann, sollte klar sein.

Wie gesagt: Ein Thread newthread = new Thread(savebyThread); sollte eigentlich reichen.


chrisachern - Di 26.06.07 15:46

vielen dank hat alles geklappt