创建多参数的线程时,将方法要用到的参数及方法本身封装到一个类中,利用有参构造方法将参数的值传入,
因为方法在类内部,可以直接调用参数,最后用ThreadStart或ParameterizedThreadStart委托调用方法。
using System; using System.Threading; namespace PlusThread { class MYThread { public void Print() { Console.WriteLine("无返回值的线程操作"); } public void PrintOne(object i) { Console.WriteLine((string)i); } static void Main(string[] args) { //无参数的线程 Thread thread = new Thread(new ThreadStart(new MYThread().Print)); Thread.Sleep(2000); thread.Start(); //接收一个参数 Thread oneThread = new Thread(new ParameterizedThreadStart(new MYThread().PrintOne)); oneThread.Start("有一个参数的线程"); //接收多个参数 MYThreadMore myTreadMore = new MYThreadMore("Hello", "World"); Thread threadMore = new Thread(new ParameterizedThreadStart(myTreadMore.PrintMore)); threadMore.Start("第三个参数"); //匿名方法 Thread threadNiming = new Thread(new ThreadStart(delegate () { string firstParam = "Hello "; string secondParam = "World"; Console.WriteLine(firstParam + secondParam); })); } } public class MYThreadMore { string FirstParam; string SecondParam; public MYThreadMore(string firstParam, string secondParam) { FirstParam = firstParam; SecondParam = secondParam; } public void PrintMore(object j) { Console.WriteLine(FirstParam + " " + SecondParam + " " + j.ToString()); } } }