请问一个带参数的方法怎么放到线程里面去?
liThread = new Thread(new ThreadStart(Listen));
liThread.Start();
上面这个Listen如果是带参数的怎么办呢?

解决方案 »

  1.   

    Start,不就可以带参数吗,看帮助
      

  2.   

    看了帮助的哦,Start(object 参数啊)
    我要传int参数啊。
    搜寻网上的资料,好像要用匿名委托。请大神指导一下!
      

  3.   

    int i=0;
    liThread.Start(i);
    系统会自动帮你装箱的
      

  4.   

    楼上正解
    你方法里在拆箱会int
      

  5.   


    class Program
        {
            static void Main(string[] args)
            {
                Program pro=new Program();
                Thread thread = new Thread(new ParameterizedThreadStart(Write));
                thread.Start("线程调用带参数的方法");
            }
            public void Write(object par)
            {
                Console.WriteLine(par.toString());
     
            }
    }
      

  6.   

    都可以传Object类型的参数,你就不会传int型了么……装箱拆箱啊。
      

  7.   

    class Program
        {
    int i;
    public int ParametersInt
    {
    get{return i;}
    set{i=value;}
    }
            static void Main(string[] args)
            {
                Program pro=new Program();
                Thread thread = new Thread(new ParameterizedThreadStart(WriteNone));
                thread.Start("线程调用带参数的方法");
            }
    public void WriteNone()
    {
    Write(ParametersInt)
    }
            public void Write(object par)
            {
                Console.WriteLine(par.toString());
     
            }
    }
      

  8.   

    ParameterizedThreadStart 委托和 Thread.Start(Object) 方法重载使得将数据传递给线程过程变得简单,但由于可以将任何对象传递给 Thread.Start(Object),因此这种方法并不是类型安全的。将数据传递给线程过程的一个更可靠的方法是将线程过程和数据字段都放入辅助对象。有关更多信息,请参见 启动时创建线程并传递数据。--摘自MSDN
      

  9.   

    Thread thread = new Thread(new ParameterizedThreadStart(Write));
    thread.Start("线程调用带参数的方法");private void Write(object obj)
    {
       string s=(string)obj;
       
    }
      

  10.   

    额 谢谢LS各位 要用这个ParameterizedThreadStart()才行。没有系统学过C#,请原谅小生...