Laden...

Mehrere Argumente an neuen Thread übergeben

Erstellt von Term!nX vor 13 Jahren Letzter Beitrag vor 13 Jahren 2.365 Views
Term!nX Themenstarter:in
104 Beiträge seit 2007
vor 13 Jahren
Mehrere Argumente an neuen Thread übergeben

Hallo,

ich müsste an einen Thread, der im Hintergrund laufen soll, 2 verschiedene Objekte übergeben.
ParameterizedThreadStart hingegen scheint nur ein einziges Objekt vom Typ object anzunehmen. Wenn ein Parameter nicht vom Typ object ist, heißt es, keine Überladung meiner Methode stimme mit dem Delegaten ParameterizedThreadStart überein.

Das wäre auch schon meine Frage.. Wie kann ich das hinkriegen, 2 Objekte beliebigen Typs zu übergeben?

Grüße!

849 Beiträge seit 2006
vor 13 Jahren

Hallo Term!nX,

alles ist object 😉 Nur dein Parameter muss Object sein. das heißt aber nicht das Du der Start Methode nicht eine List<Irgendwas> oder sostwas übergeben darfst, um es nachher wieder zurück zu casten.

Ausserdem kannst du auch auf eine ganz andere Instanz einer anderen Klasse zeigen, der du vorher in ctor Daten übergeben kannst.

Gelöschter Account
vor 13 Jahren

Die Klasse "Tuple" und in diesem Fall insbesondere "Tuple<T1,T2>" eignen sich hervorragend für diese Aufgabe.

T
156 Beiträge seit 2010
vor 13 Jahren

Hallo, Du könntest Dir ja dafür auch eine Methode schreiben.


public void StartThread(int i, string s)
{ 
   Thread th = new Thread(delegate()
   {
       //Do something with i and s
   });
   th.Start();
}

LG, Marko

1.044 Beiträge seit 2008
vor 13 Jahren

Hallo JAck30lena,

wobei man noch anmerken sollte, dass die Tuple<T>-Klasse erst seit .NET 4 gibt.

zero_x

Gelöschter Account
vor 13 Jahren
Term!nX Themenstarter:in
104 Beiträge seit 2007
vor 13 Jahren

Hallo!

Vielen Dank für die Antwort. Hätte nicht gedacht, dass das so einfach funktionieren würde.

Danke auch an die anderen 😃

Grüße