1 Thread t; 2 public myThread() 3 { 4 t = new Thread(run); 5 t.Start(2); //這里吧參數傳遞進去 6 t.Join(); 7 8 } 9 static void run(object obj) //帶參數的run函數 10 { 11 int a = (int)obj; 12 Console.WriteLine(a); 13 14 }
這種方法只能傳遞一個單數,當然多個參數可以封裝成一個結構體傳進去,但是不是好的方法
可以講要進行元算的元素封裝成一個類,然后在然后對這個類進行初始化,最用在線程中調用這個類的函數即可
1 namespace ThreadPara 2 { 3 class myThread //直接傳參數進去 4 { 5 Thread t; 6 public myThread() 7 { 8 t = new Thread(run); 9 t.Start(2); 10 t.Join(); 11 12 } 13 static void run(object obj) 14 { 15 int a = (int)obj; 16 Console.WriteLine(a); 17 18 } 19 } 20 class MyThreadfun 21 { 22 public int a; 23 public int b; //通過公共成員來賦值 24 public void fun() 25 { 26 int c = a + b; 27 Console.WriteLine(c); 28 } 29 30 } 31 class Program 32 { 33 static void Main(string[] args) 34 { 35 myThread mt = new myThread(); 36 MyThreadfun fun = new MyThreadfun(); 37 Thread t = new Thread(fun.fun); 38 fun.a = 2; 39 fun.b = 3; 40 t.Start(); 41 42 } 43 } 44 }
MyThreadfun 就是講a b連個參數封裝成一類,然后對其進行初始化,最后在線程中調用類中的方法即可。