using System; using System.Threading; Namespace Threadingeks { public class Threadingtest { public void x(int y, int z) { while (true) { //kode der skal udføres mens thread kører } } }
public class Mainklasse { public static int Main() { Threadingtest thr = new Threadingtest(); Thread oThread = new Thread(new ThreadStart(Threadingtest.x(5,5)); oThread.Start(); while (!oThread.IsAlive); Thread.Sleep(1); oThread.Abort(); oThread.Join(); } } }
public static int Main() { Thread oThread = new Thread(new ThreadStart(x(5,5)); oThread.Start(); while (!oThread.IsAlive); Thread.Sleep(1); oThread.Abort(); } public static void x(int y, int z) { //kode der skal udføres }
Den siger at ThreadStart forventer et metodenavn... Altså ikke en x og ikke x(5,5), men hvis man gør det, så siger den at metoden x ikke er overskrevet med en der ikke tager argumenter...
jeg har altid gjordet det samme i C# som jeg altid har gjordt i Java
lave en instans af et objekt, kalde constructoren med de argumenter jeg skal bruge, lade constructor gemme dem i instans variable, starte tråd på en metode uden argumenter, den metode bruger så instans variablene
Ja det gør det, men det er desværre ikke umiddelbart en option lige nu og her, fordi jeg stadig har de progressbarer der skal tages højde for som jeg snakkede om i går i "Cross Threading" - og jeg ville være lidt ked af at flytte de metoder nu :( Men det kan selvfølgelig blive sidste udvej...
Kan bare ikke forstå hvorfor det ikke er muligt at starte en metode med argumenter som en tråd, når det nu er muligt at starte en metode uden argumenter.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.