与一个类结合就可以了。比如
class aa
{
       public  一些你要传入的参数
       public 需要执行的方法
}调用的时候创建这个类,然后初始化这些参数,然后再开始线程就可以了。

解决方案 »

  1.   

    http://www.microsoft.com/china/msdn/library/dv_vstechart/html/vbtchAsyncProcVB.asp看 线程参数和返回值 部分,以下是一个VB.net 范例代码,改写成C#的也很简单的Class TasksClass
       Friend StrArg As String
       Friend RetVal As Boolean
       Sub SomeTask()
          ' 将 StrArg 字段用作参数。
          MsgBox("StrArg 包含字符串" & StrArg)
          RetVal = True ' 设置返回参数的返回值。
       End Sub
    End Class
    ' 要使用类,请设置存储参数的属性或字段,
    ' 然后,根据需要异步调用方法。
    Sub DoWork()
       Dim Tasks As New TasksClass()
       Dim Thread1 As New System.Threading.Thread( _
           AddressOf Tasks.SomeTask)
       Tasks.StrArg = "某个参数" ' 设置用作参数的字段。
       Thread1.Start() ' 启动新线程。
       Thread1.Join() ' 等待线程 1 运行结束。
       ' 显示返回值。
       MsgBox("线程 1 返回值" & Tasks.RetVal)
    End Sub
      

  2.   

    再谈 Windows 窗体多线程
    http://www.microsoft.com/china/msdn/library/dnforms/html/winforms08162002.asp
      

  3.   

    那位能将上面的vb代码改写成c#代码啊?我对vb一窍不通。
      

  4.   

    public Class TasksClass
    {
       protected string StrArg;
       protected bool RetVal;
       private void SomeTask()
      {
          // 将 StrArg 字段用作参数。
          System.Windows.MessageBox.Show("StrArg 包含字符串" +StrArg);
          RetVal = true; ' 设置返回参数的返回值。
       }
    }//要使用类,请设置存储参数的属性或字段,
    // 然后,根据需要异步调用方法。
    private void DoWork()
    {
        TasksClass Tasks =new TasksClass();
       System.Threading.Thread Thread1 =new System.Threading.Thread( AddressOf Tasks.SomeTask);
       Tasks.StrArg = "某个参数" ;// 设置用作参数的字段。
       Thread1.Start();// 启动新线程。
       Thread1.Join();//等待线程 1 运行结束。
       //显示返回值。
       System.Windows.MessageBox.Show("线程 1 返回值" & Tasks.RetVal);
    }
    }
      

  5.   

    可以这样!
    public class ab
    {
         int a;
         public ab(int a)
         {
             this.a=a;//传入的参数
         }
         public void run()//要运行的内容
         {
               Messagebox.show(this.a.toString());
          }}public class the
    {
           public void start()
           {
               abc a = new a(4);//传入一个参数4
    System.Threading.Thread th = new System.Threading.Thread(new System.Threading.ThreadStart(a.run));
    th.Start();       }
    }
      

  6.   

    desrie(leir):
    C#里面可没有AddressOf运算符Dim Thread1 As New System.Threading.Thread(AddressOf Tasks.SomeTask)翻译成System.Threading.Thread Thread1 = new System.Threading.Thread(new System.Threading.ThreadStart(Tasks.SomeTask)才对