之前做了一个小的应用程序,用的是c#语言,涉及到了多线程的多参数传递,经过查找资料总结了一下解决方案!第一种解决方案的原理是:将线程执行的方法和参数都封装到一个类里面。通过实例化该类,方法就可以调用属性来实现间接的类型安全地传递多个参数。看如下代码:using System; using System.Threading;//ThreadWithState 类里包含了将要执行的任务以及执行任务的方法 public class ThreadWithState { //要用到的属性,也就是我们要传递的参数 private string boilerplate; private int value;//包含参数的构造函数 public ThreadWithState(string text, int number) { boilerplate = text; value = number; }//要丢给线程执行的方法,本处无返回类型就是为了能让ThreadStart来调用 public void ThreadProc() { //这里就是要执行的任务,本处只显示一下传入的参数 Console.WriteLine(boilerplate, value); } } ---------------分隔线--------------- //用来调用上面方法的类,是本例执行的入口 public class Example { public static void Main() { //实例化ThreadWithState类,为线程提供参数 ThreadWithState tws = new ThreadWithState( “This report displays the number {0}.”, 42);// 创建执行任务的线程,并执行 Thread t = new Thread(new ThreadStart(tws.ThreadProc)); t.Start(); Console.WriteLine(“Main thread does some work, then waits.”); t.Join(); Console.WriteLine( “Independent task has completed; main thread ends.”); } } 从上面的例子就能很清楚的得到我们想要的结果,注意这句代码的用法: Thread t = new Thread(new ThreadStart(tws.ThreadProc));第二种解决方案是的原理是把多个参数封装成object来传递,然后在线程里使用时拆箱即可,看如下代码:ParameterizedThreadStart ParStart = new ParameterizedThreadStart(ThreadMethod); Thread myThread = new Thread(ParStart); object o = “hello”; myThread.Start(o);ThreadMethod如下: public void ThreadMethod(object ParObject) { //程序代码 }